Доброго времени суток форуму! Помогите, пожалуйста, ускорить и (или) упростить работу макроса группировки строк. Имеется очень большой (20.000+) список, на самом деле - иерархический, но представленный в простом виде (в файле - пример на листе Данные). Вид иерархии - "итоги сверху". В самом низу - строка общих итогов. Её группировать не надо. Уровень каждой строки задается числом в первом столбце.
Нужно создать на листе соответствующую структуру. Важное дополнительное условие - группы (подгруппы), у которых имеется только один подчиненный уровень, нужно "свернуть".
Необходимый вид в файле - на листе Результат. Мои попытки решить эту задачу (используя примеры с разных форумов) - тоже в файле. Но работает этот макрос медленно.
Посоветуйте, как можно его ускорить или есть метод лучше (без лишнего цикла)? Спасибо.
Большое спасибо за попытку, Skif-F. Для приложенного примера работает верно. К сожалению -моя вина - предыдущий пример был составлен не совсем хорошо. Реальные данные более сложные. Для ряда случаев Ваш алгоритм "свёртки" работает неправильно.
Юрий М пишет: Получается, человек зря тратил на Вас своё время...
Почему? В первом посте не было сказано, что решение требуется только для данного примера. Были описаны структура данных и задача. Был приведён пример. Абсолютно корректный. Для данного примера всё работает правильно. Для другого примера такой же структуры - нет.
Цитата
Юрий М пишет: КТО мешал показать РЕАЛЬНЫЕ данные?
Все 20.000+ строк? По семь-десять файлов в день? Вы шутите?
Вы вообще смотрели оба примера? Вы можете, навскидку, определить, что второй - действительно более сложный? Да, на шесть строк длиннее. Но сложнее ли? Структура та же.
Давайте прибегнем к аналогии. Стоит задача - написать код сложения целых чисел. Точка. Приведён пример: 6+4 должно получиться 10. Если кто-нибудь сможет, реализуя алгоритм сложения целых чисел, написать правильный код для чётных чисел, некорректно работающий для нечётных - это тоже будет вина примера?
Извините, не могу принять Ваши претензии. Спор бессмысленный.
Вы можете, навскидку, определить, что второй - действительно более сложный?
Вы же как-то определили? В конце концов можно было показать два вида данных и предупредить об этом. А со мной и не нужно спорить - нужно просто принять к сведению мои замечания.
Можно я тоже приму участие? Для Юрий М: зря Вы так резко наехали на человека, он в самом деле не мог учесть, что кто-то настолько упростит его программу, которая нормально работала на любом файле, что будет зависимость в выходных данных от входных. При этом он наказал сам себя - тем, что ему пришлось дольше ждать решение этой задачи.