2

У меня есть следующая формула SUMIF: =SUMIF($B$2:$B$5758,">1",N$2:N$5758)

Можно ли сделать так, чтобы при копировании этой формулы формула =SUMIF($C$2:$C$5758,">1",N2:N5758) и так далее?

2 ответа2

3

Вы можете попробовать что-то вроде этого. Он корректирует значение столбца в зависимости от положения строки, но вы можете адаптировать его к исходной позиции в A2

=SUMIF(INDIRECT(ADDRESS(2,ROW()+1)&":"&ADDRESS(5758,ROW()+1)),">1",$N$2:$N$5758)

Если столбец N нуждается в корректировке также для суммы, сделайте то же самое с A3

=SUMIF(INDIRECT(ADDRESS(2,ROW()+1)&":"&ADDRESS(5758,ROW()+1)),">1",INDIRECT(ADDRESS(2,ROW()+12)&":"&ADDRESS(5758,ROW()+12)))
1

Функция INDEX делает это легко. Предположим, что вы не хотите ссылаться ни на какие столбцы, расположенные дальше, чем столбец Z (отрегулируйте, как требуется), и что начальная ячейка для первой формулы - A2 (отрегулируйте, как требуется), затем вы можете использовать эту формулу в A2 скопирован

=SUMIF(INDEX($B$2:$Z$5758,0,ROWS(A$2:A2)),">1",N$2:N$5758)

INDEX с нулем в качестве ссылки на строку возвращает весь столбец, конкретный столбец определяется функцией ROWS которая увеличивается на 1 для каждой строки при копировании, поэтому каждый раз перемещается на один столбец вправо.

INDEX обычно предпочтительнее любого решения, использующего OFFSET или INDIRECT потому что эти две функции являются изменчивыми - это означает, что формула пересчитывает каждый раз, когда что-либо в рабочей таблице пересчитывается

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .