Страницы: 1
RSS
Суммирование сгруппированных ячеек
 
Здравствуйте!

Имеется столбец со значениями, строки сгруппированы (выгрузка ведомости амортизации из 1С). Из программы 1С суммы итоговых строк выгружаются в значениях, а для аналитики необходимо проставить в них формулы, особенно когда работаешь с огромными массивами данных (около 30000 строк) - столько и за сутки вручную не проставишь. Помогите в поиске нужной для меня формулы, не применяя макрос (темный лес).

Пытался решить проблему с помощью ввода дополнительного столбца, однако быстро сообразил что она тут не поможет.

Пример прилагаю.
 
Попытался вставить вот такую формулу, опираясь на вспомогательный столбец:

=ЕСЛИ($A2=0;C2;ЕСЛИ($A2=3;СУММ(D3:ИНДЕКС(D3:D$2499;ПОИСКПОЗ(2;A3:$A$2499;0)));ЕСЛИ($A2=2;СУММ(D3:ИНДЕКС(D3:D$2499;ПОИСКПОЗ(1;A3:$A$2499;0)));ЕСЛИ($A2=1;СУММ(D3:ИНДЕКС(D3:D$2499;ПОИСКПОЗ(0;A3:$A$2499;0)));))))

Все бы хорошо, но она суммирует только первые значения, а не все необходимые ячейки.
 
жесточайшее извращение с использованием макрофункции
Лень двигатель прогресса, доказано!!!
 
Нарисовалась вот такая формула:
Код
=ЕСЛИ(A2;СУММПРОИЗВ((A3:ИНДЕКС(A:A;ЕСЛИОШИБКА(ПОИСКПОЗ(A2;A3:A9997;)+СТРОКА();СЧЁТ(A:A)))=A2-1)*C3:ИНДЕКС(C:C;ЕСЛИОШИБКА(ПОИСКПОЗ(A2;A3:A9997;)+СТРОКА();СЧЁТ(A:A))));C2)
Она считает сумму чисел группы предыдущего уровня. Для 1 непрерывный ряд с 0, для 2 строки с 1 до следующей 2, для 3 все с 2 до следующей 3.
Не могу проверить группы с 3, потому что она одна. Возможно, в формуле придётся ещё проверку добавлять.
*Формулу исправил, чтобы полностью с новым столбцом работала, формула в столбце E:
Код
=ЕСЛИ(A2;СУММПРОИЗВ((A3:ИНДЕКС(A:A;ЕСЛИОШИБКА(ПОИСКПОЗ(A2;A3:A9999;)+СТРОКА();9999))=A2-1)*E3:ИНДЕКС(E:E;ЕСЛИОШИБКА(ПОИСКПОЗ(A2;A3:A9999;)+СТРОКА();9999)));C2)
Изменено: Светлый - 13.09.2019 19:50:06
 
Цитата
Светлый написал:
Нарисовалась вот такая формула:Код ? 1=ЕСЛИ(A2;СУММПРОИЗВ((A3:ИНДЕКС(A:A;ЕСЛИОШИБКА(ПОИСКПОЗ(A2;A3:A9997;)+СТРОКА();СЧЁТ(A:A)))=A2-1)*C3:ИНДЕКС(C:C;ЕСЛИОШИБКА(ПОИСКПОЗ(A2;A3:A9997;)+СТРОКА();СЧЁТ(A:A))));C2)Она считает сумму чисел группы предыдущего уровня. Для 1 непрерывный ряд с 0, для 2 строки с 1 до следующей 2, для 3 все с 2 до следующей 3.Не могу проверить группы с 3, потому что она одна. Возможно, в формуле придётся ещё проверку добавлять.*Формулу исправил, чтобы полностью с новым столбцом работала, формула в столбце E:Код ? 1=ЕСЛИ(A2;СУММПРОИЗВ((A3:ИНДЕКС(A:A;ЕСЛИОШИБКА(ПОИСКПОЗ(A2;A3:A9999;)+СТРОКА();9999))=A2-1)*E3:ИНДЕКС(E:E;ЕСЛИОШИБКА(ПОИСКПОЗ(A2;A3:A9999;)+СТРОКА();9999)));C2)

Изменено: Светлый  - 13 Сен 2019 19:50:06

Спасибо дружище! Формула подошла :)
 
Если кто-нибудь встретит TVB - передайте ему от меня большой привет.
Страницы: 1
Наверх