Excel公式 – Sumif OR
excel用户面临的一个挑战:我有一张表格,内容如下:
Year || Week || Output 2011 || 50 || 1000 2011 || 51 || 2000 2011 || 52 || 1500 2012 || 01 || 1200 2012 || 02 || 1700 2012 || 03 || 1900
我想总结列输出中给定年份/周和另一年/周之间的值。 例:
- 在2011/50和2011/52之间。 结果= 1000 + 2000 + 1500 = 4500
- 在2011/51和2012/02之间。 结果= 2000 + 1500 + 1200 + 1700 = 6400
谢谢大家。
问候,MH
我的步骤:
- 年= A,周= B,输出= E
- 创build一个临时列(C):
{Year}*100 + {Week}
- 为边界创build两个input集(也包含
{Year}*100 + {Week}
) –<LOW>
&<HIGH>
。 - 用这个公式创build一个临时列(D):
=IF(AND(C2>=<LOW>,C2<=<HIGH>),1,0)*E2
然后求和单元变成:
=SUM(D:D)
编辑 :find另一种方式,从上面没有D
列
N1 =低(年* 100 +周) O1 =高(年* 100 +周) N2 => = TEXT(N1) O2 => = TEXT(O1)
=SUMIFS(E:E,C:C, CONCATENATE(">=", $N$2),C:C, CONCATENATE("<=", $O$2))
如果您使用的是Excel 2007或更高版本,则可以使用SUMIFS()
。
例
=SUMIFS(C2:C7, A2:A7, "=2011", B2:B7, ">49", B2:B7, "<53")
否则,你仍然可以使用Excelmacros。
假设您的数据在A1:C6中,可以使用数组公式(数组公式)(使用Shift + Ctrl + Enterinput)来完成此操作:
=SUM((A1:A6=2011)*(B1:B6>=50)*(B1:B6<=52)*(C1:C6))
或者,用SumProduct(正常input):
=SUMPRODUCT((A1:A6=2011)*(B1:B6>=50)*(B1:B6<=52)*(C1:C6))
显然,你需要input或引用你的标准。 另外,如果年份会发生变化,那么您将需要另一个期限来检查最大年份。