Добрый день! Помогите составить формулы для реестра, в котором будет собрана информация с различных листов документа, в прикрепленном файле есть листы с данными по организациям, мне надо собрать в лист "Реестр" информацию, указанную в шапке. Возможно ли написать формулы, которые будут автоматически ее собирать в лист "Реестр"? Если не понятно расписала вопрос, спрашивайте. Заранее благодарна!
Добрый день! Помогите составить формулы для реестра, в котором будет собрана информация с различных листов документа, в прикрепленном файле есть листы с данными по организациям, мне надо собрать в лист "Реестр" информацию, указанную в шапке. Возможно ли написать формулы, которые будут автоматически ее собирать в лист "Реестр"? Если не понятно расписала вопрос, спрашивайте. Заранее благодарна!fanta
1. Не уверен на счет формулы. ВПР не подходит имхо, т.к. источник данных не один диапазон (лист), а три разных листа (а значит и три разных диапазона). 2. И еще хотел уточнить изначально лист реестра пуст? 3. Вы просто хотите со всех листов компаний все агрегировать на один лист "Реестр"? Т.е. ,грубо говоря, просто автоматизированный копипаст? Или есть какая-то логика? 4. И сразу подводный камень, формула может не сработать так же, если у вас акты будут с неверными названиями (не цифры) и/или если номера актов будут пересекаться в разных компаниях.
1. Не уверен на счет формулы. ВПР не подходит имхо, т.к. источник данных не один диапазон (лист), а три разных листа (а значит и три разных диапазона). 2. И еще хотел уточнить изначально лист реестра пуст? 3. Вы просто хотите со всех листов компаний все агрегировать на один лист "Реестр"? Т.е. ,грубо говоря, просто автоматизированный копипаст? Или есть какая-то логика? 4. И сразу подводный камень, формула может не сработать так же, если у вас акты будут с неверными названиями (не цифры) и/или если номера актов будут пересекаться в разных компаниях.mathiax90
Номера актов пересекаться с разными компаниями не будут, нумерация актов будет единая для всех организаций и только цифры по порядку, поэтому в листе "Реестр" сразу прописала номера актов по порядку с 1 и далее. В листе "Реестр" мне надо, чтобы автоматически заполнялись столбцы "дата акта", "организация" и "объем".
Номера актов пересекаться с разными компаниями не будут, нумерация актов будет единая для всех организаций и только цифры по порядку, поэтому в листе "Реестр" сразу прописала номера актов по порядку с 1 и далее. В листе "Реестр" мне надо, чтобы автоматически заполнялись столбцы "дата акта", "организация" и "объем".fanta
Вот очень простой вариант. Сделан на коленке. Но для решения вашей задачи думаю пойдёт. В прикреплённом файле макрос уже на месте осталось только его запустить. Что делает макрос: 1. Создаёт новый лист по текущей дате и времени 2. Данные со всех листов (кроме нового) копируются на новый лист Копирование идёт со второй строки Копирование продолжается до тех пор, пока в первом столбце не встретиться пустая ячейка. 3. Внимательно!!! Запустили один раз макрос, не забудьте удалить созданный лист, а то он тоже в сводную попадёт.
[vba]
Код
Sub agragate()
Dim ash As Worksheet Dim awb As Workbook Dim shCount As Long
Set awb = ActiveWorkbook shCount = awb.Worksheets.Count
awb.Sheets.Add(After:=awb.Sheets(awb.Sheets.Count)).Name = Format(Now, "yyyy-mm-dd HH-MM-ss") Set ash = awb.ActiveSheet
j = 1 For shi = 1 To shCount i = 2 Do ash.Cells(j, 4) = awb.Sheets(shi).Cells(i, 1) ash.Cells(j, 3) = awb.Sheets(shi).Cells(i, 2) ash.Cells(j, 2) = awb.Sheets(shi).Cells(i, 3) ash.Cells(j, 1) = awb.Sheets(shi).Cells(i, 4) i = i + 1 j = j + 1 Loop While awb.Sheets(shi).Cells(i, 1) <> "" Next shi
End Sub
[/vba]
Вот очень простой вариант. Сделан на коленке. Но для решения вашей задачи думаю пойдёт. В прикреплённом файле макрос уже на месте осталось только его запустить. Что делает макрос: 1. Создаёт новый лист по текущей дате и времени 2. Данные со всех листов (кроме нового) копируются на новый лист Копирование идёт со второй строки Копирование продолжается до тех пор, пока в первом столбце не встретиться пустая ячейка. 3. Внимательно!!! Запустили один раз макрос, не забудьте удалить созданный лист, а то он тоже в сводную попадёт.
[vba]
Код
Sub agragate()
Dim ash As Worksheet Dim awb As Workbook Dim shCount As Long
Set awb = ActiveWorkbook shCount = awb.Worksheets.Count
awb.Sheets.Add(After:=awb.Sheets(awb.Sheets.Count)).Name = Format(Now, "yyyy-mm-dd HH-MM-ss") Set ash = awb.ActiveSheet
j = 1 For shi = 1 To shCount i = 2 Do ash.Cells(j, 4) = awb.Sheets(shi).Cells(i, 1) ash.Cells(j, 3) = awb.Sheets(shi).Cells(i, 2) ash.Cells(j, 2) = awb.Sheets(shi).Cells(i, 3) ash.Cells(j, 1) = awb.Sheets(shi).Cells(i, 4) i = i + 1 j = j + 1 Loop While awb.Sheets(shi).Cells(i, 1) <> "" Next shi
Спасибо, с макросами не знакома, но смысл поняла, сбор инфы со всех листов в один лист. А с помощью формулы никак? Есть еще такой момент, необходимо отследить, что ни один акт по организациям не выпал из общей нумерации. Т е, например, по какой-то организации забыли данные по акту внести в листе данной организации и в листе "реестр", где я изначально всю нумерацию от 1 и далее проставила будет видно что акт пропущен (потерян). А с помощью макроса необходимо будет постоянно самой просматривать пропущен акт или нет. Но если другие варианты не возможны, то макрос буду использовать) Еще раз спасибо!
Спасибо, с макросами не знакома, но смысл поняла, сбор инфы со всех листов в один лист. А с помощью формулы никак? Есть еще такой момент, необходимо отследить, что ни один акт по организациям не выпал из общей нумерации. Т е, например, по какой-то организации забыли данные по акту внести в листе данной организации и в листе "реестр", где я изначально всю нумерацию от 1 и далее проставила будет видно что акт пропущен (потерян). А с помощью макроса необходимо будет постоянно самой просматривать пропущен акт или нет. Но если другие варианты не возможны, то макрос буду использовать) Еще раз спасибо!fanta