У меня есть лист Excel с 18 столбцами.Последние 2 столбца являются суммами.У меня есть ситуация, в которой мне нужно многократно выполнять группировку.
Например: рассмотрим первые 16 столбцов, скажем, уровень 16. Мне нужно сгруппировать все эти 16 столбцов и суммировать суммы за последние 2колонны.Затем наступает уровень 15, на котором я теперь группирую по 15 столбцам и суммирую последние 2 столбца и так далее ... пока не достигну уровня 1
Проблема здесь в том, что я имею дело с 200k + записями.Одним из конкретных подходов, который я выбрал, было сначала скопировать все записи из 200 000+ на другой лист, а затем на основе текущего уровня (скажем, 16). Я использую CONCATANATE (все 16 столбцов), чтобы создать строку, а затем
=SUMIF(entire 200k concatanate string,first cell of concatenate string,entire range of coulmn to be summed)
.Используйте то же самое для другого столбца, который будет суммирован.Теперь, поскольку встраивание этой формулы в каждую ячейку в цикле отнимает уйму времени, я использую пасту диапазона копирования, чтобы сделать это.Но все равно копирование с вставкой формулы в 200 тыс. Строк немного подвисает.
После этого я использую метод .removeduplicates, чтобы удалить любые дублирующиеся записи на основе объединенной строки.Проблема в том, что формула SUMIF зависит от тех записей, которые были удалены методом .removeduplicates: (
Для этого я сначала вставил формулы в последние 2 столбца, а затем скопировал и вставил их в отдельные столбцы, используяcopypastespecial в качестве «values», а затем использовать метод .removeduplicates
Это вызывает огромную нагрузку на время и ресурсы, и Excel постоянно зависает. Я не эксперт по VBA, поэтому уверен, что может быть лучше логикатам :(. пользуюсь excel 2007
помогите пожалуйста !!!