我想基于一个值在Excel中汇总多个行。在下图中,您可以看到该表。
我想在F1中添加一个值,其中包含Jan - >的值的总和。 (在C2中指定的月份#)其中Status是C1中的值。
如果你这样做
= SUMIF(B5:B11, “开放式” 的,间接的(CONCATENATE( “C5”,ADDRESS(11,2 + C2))))
你得到25(Cell I2)(这是C5和C8的总和),而我实际想要的结果是50(C5 + D5的总和(1月和2月开放)和C8 + D8 (1月和2月开放))
希望有道理吗?
我期待着任何意见和建议。
干杯
尼克
alt text http://ntdd2425.fm.netbenefit.co.uk/table.png
编辑 - 我希望我能够在不创建中间列的情况下完成此操作。 Excel中的不一致是由于SUM似乎支持跨多个列求和,但SUMIF不支持求和。所以这确实有效:
= SUM(INDIRECT(CONCATENATE(ADDRESS(5,3), “:”,ADDRESS(5,2 + $ C $ 2))))
答案 0 :(得分:2)
我建议将SUM()与数组一起使用:
=SUM(C5:G11*(IF(COLUMN(C5:G11)<=($C$2+1),1,0)*IF($c$1=b5:b11,1,0)))
使用Ctrl-Shift-Enter输入,以便作为数组公式输入。
YMMV,但它在这里进行了快速测试。
基本上,您将三个数组相乘:一个与您的数据相乘,一个基于月份匹配列的1或0,最后一个基于状态过滤器的1或0。数组的大小不匹配,因此重复它们。
答案 1 :(得分:0)
我认为通过两个步骤做起来会更容易。
添加一个带有 OFFSET 功能的辅助列,以计算每行的“年初至今”值。基于您的数据的公式将是:
= SUM(OFFSET(B5,0,1,1,$ C $ 2))
然后添加一个 SUMIF 函数,该函数以辅助列为目标。
= SUMIF(B5:B11,$ C $ 1,H5:H11)
SUMIF screenshot http://img200.imageshack.us/img200/4392/offset.png