在Excel 2007中,如何从指定范围的多个列的SUMIFS索引?
我正在分析与特定用户类别贷款有关的图书馆统计数据。 贷款数据形成指定范围LoansToApril2013。 Excel 2007对于我使用索引范围作为SUMIF中的总和范围感到非常高兴:
=SUMIF(INDEX(LoansToApril2013,0,3),10,INDEX(LoansToApril2013,0,4):INDEX(LoansToApril2013,0,6))
这里10表示一个特定的用户类别,并且这三个栏目对该组进行了贷款。 我所指的是“指数范围”
INDEX(LoansToApril2013,0,4):INDEX(LoansToApril2013,0,6)
sum_range值。
但是,如果我切换到使用SUMIFS来添加更多条件,Excel将返回一个#VALUE错误如果使用索引范围。 它只会接受一个单一的索引。
=SUMIFS(INDEX(LoansToApril2013,0,4),INDEX(LoansToApril2013,0,3),1,INDEX(LoansToApril2013,0,1),"PTFBL")
工作正常
=SUMIFS(INDEX(LoansToApril2013,0,4):INDEX(LoansToApril2013,0,6),INDEX(LoansToApril2013,0,3),1,INDEX(LoansToApril2013,0,1),"PTFBL")
返回#value,我不知道为什么。
有趣的是,
=SUMIFS(INDEX(LoansToApril2013,0,4):INDEX(LoansToApril2013,0,4),INDEX(LoansToApril2013,0,3),1,INDEX(LoansToApril2013,0,1),"PTFBL")
也被接受,并且返回与具有单个索引的第一个一样的返回。
我一直没有find任何有关这方面的文件或意见。 有谁知道是否有一个可以让SUMIFS有条件地总结三列索引值的替代结构? 我宁愿不使用三个单独的公式并将它们加在一起,虽然这是可能的。
sumifs
公式是在数组公式之后进行build模的,并且sumifs
比较需要是相同的大小,最后一个模拟LoansToApril2013
数组列4:4
中的一列是第4列。
第二个到下一个是3列宽,比较列是1列宽造成的错误。
sumifs
不能这样做,但sumproduct
可以
例:
X 1 1 1 Y 2 2 2 Z 3 3 3
从A1开始
公式=SUMPRODUCT((A1:A3="X")*B1:D3)
给出答案3
,并将公式中的值X
更改为Y
或Z
将返回的值更改为适当的行总和。
请注意,如果您在该区域中有文字,这将不起作用 – 它将返回#VALUE!
如果你不能避免文本,那么你需要一个数组公式。 使用相同的示例,公式将=SUM(IF(A1:A3="X",B1:D3))
,并将其作为数组公式input,则需要使用CTRL + SHIFT + ENTERinput公式- 你应该注意到excel在公式的周围。 它将任何文本都视为零,因此即使您在其中一个文本框中有文本,它也会成功合并它所find的数字(例如,将示例中的1
改为blah
,总数将为2 -公式会加上剩下的两个1
秒)
上面的两个答案和一些search允许我find一个工作的公式。 我会把它放在这里作为后代,因为没有最终结果的问题是未来读者的痛苦。
=SUMPRODUCT( (INDEX(LoansToApril2013,0,3)=C4) * (INDEX(LoansToApril2013,0,1)="PTFBL") * INDEX(LoansToApril2013,0,4):INDEX(LoansToApril2013,0,6))
这在LoansToApril2013范围的第4-6列中的值总和,其中列3中的值等于C4中的值(又名“这个公式的左边的单元格”),并且列1中的值是“PTFBL ”。
尽pipe出现,它没有任何东西乘以任何东西。 我在这个页面上find了一个解释,但基本上星号正在为函数添加标准。 请注意,标准括在自己的括号内,而范围不是。
如果要使用名称范围,则需要使用INDIRECT作为索引命令。
我用这个公式来检查两列的条件,然后把结果汇总在一个有12个月份的列表里(列由1到12 [L4]的帮助单元select)。
所以你可以做,如果:
部门(1列名称范围[C6])=销售[D6]; 区域(1列名称范围[C3])=美国[D3]; 对于那些人/产品/行项目,12个列中的SUM数字每月命名的范围表[E7]对于那个1个月[L4]
只需在您的报告页面上复制公式,即每月有1-12列,您将获得每月总结报告和2个条件。
(索引(间接($ C $ 6),0,1)= $ D $ 6)*(索引(间接($ C $ 3),0,1)= $ D $ 3)* INDEX(INDEXECT($ E7) ,0,L $ 4))