我有一个预算电子表格,如果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个+。
答案 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)