我正在分析与特定用户类别的贷款有关的图书馆统计数据。贷款数据形成指定范围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")
也被接受并返回与第一个具有单个索引相同的内容。
我无法找到任何与此相关的文档或评论。有没有人知道是否有一个替代结构允许SUMIFS有条件地对三列中的索引值求和?我宁愿不使用三个单独的公式并将它们加在一起,尽管它是可能的。
sumifs
公式是在数组公式之后建模的,并且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))
,并将其作为数组公式输入,您需要使用CTRL + SHIFT + ENTER输入公式 - 您应该注意到excel将{}放在公式周围。它将任何文本视为零,因此即使您在其中一个框中有文本,它也会成功地将它找到的数字相加(例如,将示例中的1
中的一个更改为blah
,总数将为2 - 公式将在行中添加剩余的两个1
s)
上面的两个答案和一些搜索让我找到了一个有效的公式。我会把它放在这里作为后代,因为没有最终结果的问题对未来的读者来说是一种痛苦。
=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” ”。
尽管出现了,但它并没有增加任何其他东西。我在this page上找到了解释,但基本上星号是为函数添加标准。请注意,标准包含在它们自己的括号中,而范围则不包括在内。
如果要使用名称范围,则需要使用INDIRECT作为索引命令。
我使用该公式检查两列中的条件,然后将结果汇总到一个表中,该表具有12个月的列(该列由辅助单元格选择,为1到12 [L4])。
所以你可以这样做:
部门(1栏名称范围[C6])=销售[D6];区域(1列名称范围[C3])= USA [D3];对于那些人/产品/订单项,12个月的每月命名范围表[E7]中的SUM表示该单个月[L4]
只需在报告页面中复制公式,该报告页面包含月份列1-12,您将获得包含2个条件的月度摘要报告。
= SUMPRODUCT((指数(间接($ C $ 6),0,1)= $ D $ 6)*(指数(间接($ C $ 3),0,1)= $ D $ 3)*指数(间接($ E7)) ,0,L $ 4))