Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Аналогия суммееслимн на vba, только быстрее - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Аналогия суммееслимн на vba, только быстрее (Макросы/Sub)
Аналогия суммееслимн на vba, только быстрее
kotlovan Дата: Четверг, 23.03.2023, 13:02 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день,
Имеется файл с базой строк порядка 40 000, с ежегодным увеличением на 10 000.
Сейчас из него формулой суммеслимн в соответствующую ячейку итоговой формы вытягиваются значения по 5 условиям в пяти диапазонах. Файл очень долго производит пересчет.

Требуется решить макросом эту же задачу с более быстрым временем выполнения расчета.
Кроме того усложнение уровня - один столбец с условиями содержит в себе перечисление месяцев, макрос должен помимо месяцев уметь брать, например, апрель нарастающим с начала года. (То есть в массив должны попасть строки с январем, февралем, мартом, апрелем, а уже на них накладывать остальные 4 условия по другим столбцам: регион, вид транспортного средства, серия). Результатом должна быть сумма цифр по указанному столбцу.

Подскажите с чего именно начать, с какими dim работать, это массивы, range, dictionary или чтотоеще? Не могу понять логику даже на словах пока без кода.
Я
 
Ответить
СообщениеДобрый день,
Имеется файл с базой строк порядка 40 000, с ежегодным увеличением на 10 000.
Сейчас из него формулой суммеслимн в соответствующую ячейку итоговой формы вытягиваются значения по 5 условиям в пяти диапазонах. Файл очень долго производит пересчет.

Требуется решить макросом эту же задачу с более быстрым временем выполнения расчета.
Кроме того усложнение уровня - один столбец с условиями содержит в себе перечисление месяцев, макрос должен помимо месяцев уметь брать, например, апрель нарастающим с начала года. (То есть в массив должны попасть строки с январем, февралем, мартом, апрелем, а уже на них накладывать остальные 4 условия по другим столбцам: регион, вид транспортного средства, серия). Результатом должна быть сумма цифр по указанному столбцу.

Подскажите с чего именно начать, с какими dim работать, это массивы, range, dictionary или чтотоеще? Не могу понять логику даже на словах пока без кода.
Я

Автор - kotlovan
Дата добавления - 23.03.2023 в 13:02
Serge_007 Дата: Четверг, 23.03.2023, 13:27 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Здравствуйте

с чего именно начать
Начинайте (и заканчивайте) сводной таблицей
Это будет оптимальнее и быстрей как функций Excel, так и макросов VBA


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЗдравствуйте

с чего именно начать
Начинайте (и заканчивайте) сводной таблицей
Это будет оптимальнее и быстрей как функций Excel, так и макросов VBA

Автор - Serge_007
Дата добавления - 23.03.2023 в 13:27
msi2102 Дата: Четверг, 23.03.2023, 15:49 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 413
Репутация: 129 ±
Замечаний: 0% ±

Excel 2007
Подскажите с чего именно начать
Начните с Sub, в эту строку пропишите название макроса, потом Dim тут описывайте переменные которые у Вас будут участвовать в процедуре, далее грузите Range в массив, так будет быстрее работать. Далее начинается обработка данного массива, точно могу сказать, что будут циклы, возможно For-Next или Do-Loop или While-Wend, а также условия If-End If или Select Case-End Select. По поводу использования Dictionary не могу Вам ничего сказать, это будет зависеть от построения Вашей логики при обработке массива. И в конце процедуры не забудьте поставить End Sub


Сообщение отредактировал msi2102 - Четверг, 23.03.2023, 15:53
 
Ответить
Сообщение
Подскажите с чего именно начать
Начните с Sub, в эту строку пропишите название макроса, потом Dim тут описывайте переменные которые у Вас будут участвовать в процедуре, далее грузите Range в массив, так будет быстрее работать. Далее начинается обработка данного массива, точно могу сказать, что будут циклы, возможно For-Next или Do-Loop или While-Wend, а также условия If-End If или Select Case-End Select. По поводу использования Dictionary не могу Вам ничего сказать, это будет зависеть от построения Вашей логики при обработке массива. И в конце процедуры не забудьте поставить End Sub

Автор - msi2102
Дата добавления - 23.03.2023 в 15:49
Serge_007 Дата: Четверг, 23.03.2023, 16:05 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
msi2102, :D :) hands


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщениеmsi2102, :D :) hands

Автор - Serge_007
Дата добавления - 23.03.2023 в 16:05
kotlovan Дата: Пятница, 24.03.2023, 11:37 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Serge_007


Благодарю! файл уменьшился на 12 мб, пришлось правда разобраться как макросом фильтровать сводные таблицы, но оно того стоило однозначно hands
+ скорость пересчета конечно выросла существенно.


Сообщение отредактировал kotlovan - Пятница, 24.03.2023, 11:37
 
Ответить
Сообщение
Serge_007


Благодарю! файл уменьшился на 12 мб, пришлось правда разобраться как макросом фильтровать сводные таблицы, но оно того стоило однозначно hands
+ скорость пересчета конечно выросла существенно.

Автор - kotlovan
Дата добавления - 24.03.2023 в 11:37
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Аналогия суммееслимн на vba, только быстрее (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!