1

对 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

4

3 回答 3

2

我的步骤:

  1. 年 = A,周 = B,产出 = E
  2. 创建一个临时列 (C) 持有:{Year}*100 + {Week}
  3. 为边界创建两个输入集(也使用{Year}*100 + {Week}) -- <LOW>& <HIGH>
  4. 使用以下公式创建一个临时列 (D):

=IF(AND(C2>=<LOW>,C2<=<HIGH>),1,0)*E2

然后求和单元格变为:

=SUM(D:D)

编辑:找到另一种方式,D上面没有列

N1 = LOW(年*100 + 周)
O1 = HIGH(年*100 + 周)

N2 => =文本(N1)
O2 => =文本(O1)

=SUMIFS(E:E,C:C, CONCATENATE(">=", $N$2),C:C, CONCATENATE("<=", $O$2))

于 2012-02-03T22:58:17.733 回答
0

如果您使用SUMIFS()的是 Excel 2007 或更高版本,则可以使用 ,。

例子

=SUMIFS(C2:C7, A2:A7, "=2011", B2:B7, ">49", B2:B7, "<53")

否则,您仍然可以使用 Excel 宏。

于 2012-02-03T22:55:44.793 回答
0

假设您的数据在 A1:C6 中,您可以使用数组公式执行此操作(使用 Shift+Ctrl+Enter 输入):

=SUM((A1:A6=2011)*(B1:B6>=50)*(B1:B6<=52)*(C1:C6))

或者,使用 SumProduct(正常输入):

=SUMPRODUCT((A1:A6=2011)*(B1:B6>=50)*(B1:B6<=52)*(C1:C6))

显然,您需要输入或引用您的标准。此外,如果年份会发生变化,那么您将需要另一个学期来检查最长年份。

于 2012-02-03T23:04:11.407 回答