调用SUMIF函数内部单元格的内容

时间:2019-05-14 21:40:56

标签: function google-sheets sumifs google-sheets-formula

我有一个预算电子表格,如果B列中的字符串是某个关键字,我会尝试获取A列中的单元格总和。例如,我的公式之一是=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 个答案:

答案 0 :(得分:2)

首先,如评论中所述,使用完整的列不会产生任何费用:

=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))

单元格T1保留开始行,T2保留结束行。

答案 1 :(得分:0)

您可以使用简单的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)