Помогите, пожалуйста, в решении проблемы оптимизации поиска ячейки в диапазоне по 3 критериям и записи её значения в определённую ячейку на другом листе. Для начала опишу что я пытаюсь получить в данном файле: 1. Есть Лист с данными за месяца (в данном случае это "01.01.2016") из этого листа нужно взять из колонок таблицы "3/П Вод", "ЗП.Кон" и "перерасход топлива" и "разница" нужно взять значение соответствующее дню месяца, Водителю и организации и подставить на соответствующий дист в соответствующую ячейку на итоговых страницах ("общ ведом январь 1-15" или "общ ведом январь 16-31") 2. Позднее в данную книгу будут добавляться аналогичные листы: "01.02.2016", "общ ведом февраль 1-15", "общ ведом февраль 16-31" и т.д. для каждого месяца. 3. Сейчас я реализовал это следующим образом: -Прописал формулу массива в ячейки на страницах "общ ведом январь 1-15" и "общ ведом январь 16-31" для поиска по колонке "З/П Вод"
для "ЗП.Кон" и "разница" формулы аналогичны. -Создал 2 пользовательских функции для нахождения предыдущего и предпредыдущего листов [vba]
Код
Function PrevSheet(rCell As Range) Application.Volatile Dim i As Integer i = rCell.Cells(1).Parent.Index PrevSheet = Sheets(i - 1).Range(rCell.Address) End Function Function PrevPrevSheet(rCell As Range) Application.Volatile Dim i As Integer i = rCell.Cells(1).Parent.Index PrevPrevSheet = Sheets(i - 2).Range(rCell.Address) End Function
[/vba] Собственно проблема оптимизации и "торможения" начинается уже после заполнения ячеек формулой для одного-двух водителей, всего подобных строк по водителям и кондукторам в рабочем файле будет около 1000 на каждой итоговой странице, а на страницах с исходными данными в рабочем файле будет около 2500 строк. Можно ли каким-то образом оптимизировать решение данной задачи? Можно ли обойтись формулами или без VBA тут никак? Пароль от файла примера:21 Заранее благодарю за любую оказанную помощь.
Добрый день!
Помогите, пожалуйста, в решении проблемы оптимизации поиска ячейки в диапазоне по 3 критериям и записи её значения в определённую ячейку на другом листе. Для начала опишу что я пытаюсь получить в данном файле: 1. Есть Лист с данными за месяца (в данном случае это "01.01.2016") из этого листа нужно взять из колонок таблицы "3/П Вод", "ЗП.Кон" и "перерасход топлива" и "разница" нужно взять значение соответствующее дню месяца, Водителю и организации и подставить на соответствующий дист в соответствующую ячейку на итоговых страницах ("общ ведом январь 1-15" или "общ ведом январь 16-31") 2. Позднее в данную книгу будут добавляться аналогичные листы: "01.02.2016", "общ ведом февраль 1-15", "общ ведом февраль 16-31" и т.д. для каждого месяца. 3. Сейчас я реализовал это следующим образом: -Прописал формулу массива в ячейки на страницах "общ ведом январь 1-15" и "общ ведом январь 16-31" для поиска по колонке "З/П Вод"
для "ЗП.Кон" и "разница" формулы аналогичны. -Создал 2 пользовательских функции для нахождения предыдущего и предпредыдущего листов [vba]
Код
Function PrevSheet(rCell As Range) Application.Volatile Dim i As Integer i = rCell.Cells(1).Parent.Index PrevSheet = Sheets(i - 1).Range(rCell.Address) End Function Function PrevPrevSheet(rCell As Range) Application.Volatile Dim i As Integer i = rCell.Cells(1).Parent.Index PrevPrevSheet = Sheets(i - 2).Range(rCell.Address) End Function
[/vba] Собственно проблема оптимизации и "торможения" начинается уже после заполнения ячеек формулой для одного-двух водителей, всего подобных строк по водителям и кондукторам в рабочем файле будет около 1000 на каждой итоговой странице, а на страницах с исходными данными в рабочем файле будет около 2500 строк. Можно ли каким-то образом оптимизировать решение данной задачи? Можно ли обойтись формулами или без VBA тут никак? Пароль от файла примера:21 Заранее благодарю за любую оказанную помощь.Mechanic