А у основного номера есть какая-то осязаемая (там, "единичка" в какой-нибудь ячейке) характеристика его "основности" ? Или только зеленая заливка - этот признак? Соответственно, у дополнительных - это их "белёсость" (незалитость) между двумя зелеными? Как-то можно материализовать эти признаки, например, присвоить какой-то уникальный код основному и в соседней колонке пронумеровать внутри него доп.номера (присвоив номер "0" самомУ основному)?
А у основного номера есть какая-то осязаемая (там, "единичка" в какой-нибудь ячейке) характеристика его "основности" ? Или только зеленая заливка - этот признак? Соответственно, у дополнительных - это их "белёсость" (незалитость) между двумя зелеными? Как-то можно материализовать эти признаки, например, присвоить какой-то уникальный код основному и в соседней колонке пронумеровать внутри него доп.номера (присвоив номер "0" самомУ основному)?Gustav
в колонке AB (видно на скриншоте) 1 проставлен главный партномер, 0 - дополнительный
Ну, так напишите в соседней колонке AC формулу, отображающую имя текущего главного - для него самого и для всех его дополнительных. Формула для ячейки AC6 (и скопируйте ниже по колонке AC на сколько надо):
Код
=IF(AB6=1;A6;AC5)
Тогда в ячейке N6 можно записать сумму с условием (и тоже скопировать вниз по колонке N):
Код
=SUMIF(AC:AC;AC6;M:M)
И не надо никаких заморочек с динамическими диапазонами - не тот случай.
Вторую формулу можно даже сделать самопротягиваемой формулой массива, т.е. поместить её в одну-единственную ячейку N6 (предварительно удалив все формулы ниже, чтобы формула могла "развернуться") и она сгенерирует суммы ниже N6, как если бы в этих ячейках тоже были формулы суммы: [vba]
Код
=ArrayFormula(SUMIF(AC:AC;AC6:AC23;M:M))
[/vba] В данном примере значения развернутся в диапазоне AC6:AC23, который можно желаемым образом изменить.
в колонке AB (видно на скриншоте) 1 проставлен главный партномер, 0 - дополнительный
Ну, так напишите в соседней колонке AC формулу, отображающую имя текущего главного - для него самого и для всех его дополнительных. Формула для ячейки AC6 (и скопируйте ниже по колонке AC на сколько надо):
Код
=IF(AB6=1;A6;AC5)
Тогда в ячейке N6 можно записать сумму с условием (и тоже скопировать вниз по колонке N):
Код
=SUMIF(AC:AC;AC6;M:M)
И не надо никаких заморочек с динамическими диапазонами - не тот случай.
Вторую формулу можно даже сделать самопротягиваемой формулой массива, т.е. поместить её в одну-единственную ячейку N6 (предварительно удалив все формулы ниже, чтобы формула могла "развернуться") и она сгенерирует суммы ниже N6, как если бы в этих ячейках тоже были формулы суммы: [vba]
Код
=ArrayFormula(SUMIF(AC:AC;AC6:AC23;M:M))
[/vba] В данном примере значения развернутся в диапазоне AC6:AC23, который можно желаемым образом изменить.Gustav
Gustav, дай Бог тебе здоровья! Вопрос в догонку: как можно реализовать автоматическую подстановку формулы при добавлении новой строке на листе "Справочник"?
Gustav, дай Бог тебе здоровья! Вопрос в догонку: как можно реализовать автоматическую подстановку формулы при добавлении новой строке на листе "Справочник"?