Вызов содержимого ячейки внутри функции SUMIF - PullRequest
0 голосов
/ 15 мая 2019

У меня есть таблица бюджета, где я пытаюсь получить сумму ячеек в столбце A, если строка в столбце B является определенным ключевым словом. Например, одна из моих формул - =SUMIF(D13:D36,"Restaurant",C13:C36), поэтому, если любая из ячеек в Col D равна Restaurant, она берет сумму в Col C и складывает их. У меня около 10 одинаковых формул, каждая с уникальной строкой / ключевым словом. Эта функция отлично работает.

Моя проблема заключается в том, что когда я добавляю много записей, и столбцы становятся длиннее, чем указано в коде, мне нужно идти в каждую формулу отдельно и обновлять ячейки (например, изменить C13:C36 на C13:C45, но 10 раз ).

Если я введу «C13» в ячейку, для этого примера T1, можно ли вызвать содержимое в ячейке T1 в функции SUMIF? Так что функция будет выглядеть примерно так: =SUMIF(D13:D36,"Restaurant",CELL(T1):C36). Я знаю, что CELL функция здесь не работает, но есть что-то, что могло бы?

То, что я пытаюсь сделать, это написать начальную и конечную ячейки где-нибудь на моем листе, а затем вызвать их внутри функции SUMIF, поэтому, если мне нужно изменить их позже, мне нужно обновить только 4 ячейки, а не 10+.

Ответы [ 2 ]

2 голосов
/ 15 мая 2019

Во-первых, как указано в комментариях, использование полных столбцов не требует затрат:

=SUMIF(D:D,"Restaurant",C:C)

Что теперь не имеет значения, насколько большим он становится.

Но если кто-то хочет ограничить его с помощью других ячеек, я бы использовал INDEX вместо INDIRECT, поскольку INDIRECT является изменчивым (это работает только в Excel):

=SUMIF(INDEX(D:D,T1):INDEX(D:D,T2),"Restaurant",INDEX(C:C,T1):INDEX(C:C,T2))

Где CellT1 содержит начальную строку, а T2 - конечную.

0 голосов
/ 15 мая 2019

Вы можете использовать простые QUERY, например:

=QUERY({C13:D}, "select Col2, sum(Col1) 
                 where Col2 matches 'Restaurant' 
                 group by Col2 
                 label sum(Col1)''", 0)

или для всей группы:

=QUERY({C13:D}, "select Col2, sum(Col1) 
                 where Col2 is not null 
                 group by Col2 
                 label sum(Col1)''", 0)
...