SUMIFS:如何在指定范围时将列名写为公式?

时间:2015-11-22 18:04:46

标签: excel excel-formula sumifs excel-match

表中有B到Z列。我想总结一下包含" Mar-15"作为标题,如果列A的值大于或等于" Mar-15"。

所以,如果我在Sheet1中有以下内容 -

     A       B       C       D       E
1          Mar-15   Apr-15  May-15  Jun-15
2 Feb-15    1       2       3       4
3 Mar-15    100     200     300     400
4 Apr-15    1000    2000    3000    4000
5 May-15    10000   20000   30000   40000

我在Y和Z列中有以下内容 -

    Y       Z
1 Month    Value
2 Mar-15    ?

我希望能够在Z2中编写一个公式,该公式将标题中等于Y2的列中的值相加,并且列A大于或等于Y2。所以在这里,公式所需的答案是 1110 ,因为Y2包含 Mar-15

更清楚的是,如果Y2包含 4月15日,那么Z2中的结果应为 22000

现在,我有了公式

=MATCH(Y2,$1:$1,0)

它给了我2,这是第一行中的列索引,它与Y2中的值匹配。

然后,我修改它以获得标题的地址 -

=ADDRESS(1,MATCH(Y2,$1:$1,0))

这给了我 $ B $ 1 。要单独使用该列,我正在执行=LEFT(ADDRESS(1,MATCH(Y2,$1:$1,0)),2),这使我 $ B

现在,我想对此地址函数返回的列进行SUMIFS,并指定列A应该大于Y2中的值的条件。

=SUMIFS(<something>,A:A,">="&Y2)

应该是什么?根据Y2中的值,我想要求的列可以是不同的。那么我用什么公式代替某事

我试过LEFT(ADDRESS(1,MATCH(Y2,$1:$1,0)),2):LEFT(ADDRESS(1,MATCH(Y2,$1:$1,0)),2),因为LEFT(ADDRESS(1,MATCH(Y2,$1:$1,0)),2)给了我 $ B ,我认为这个公式会给我 $ B:$ B ,但是不起作用。

2 个答案:

答案 0 :(得分:2)

试试这个公式

=SUMPRODUCT(--(A2:A200>=Y2),INDEX(B2:E200,0,MATCH(Y2,B1:E1,0)))

使用MATCH查找范围B2:E200要查看的列(0表示该选定列中的所有行)。测试A2:A200>=Y2检查指定的第一列, - 更改匹配为1未命中为0,然后SUMPRODUCT将这些1/09乘以选定的列值以获得结果。

如果您想进一步阅读,请参阅here

答案 1 :(得分:2)

行或列可以使用INDEX function从矩形矩阵中“拼接”出来。 , 0,或空参数(例如, ,)用于记录相反参数中的所有单元格。在这种情况下, 0 将表示所选列中的所有行。

sumif_index

Z2中的公式可以是其中之一,

=SUMIF(A:A, ">="&Y2, INDEX(B:E, 0, MATCH(Y2, B$1:E$1, 0)))
=SUMIFS(INDEX(B:E, 0, MATCH(Y2, B$1:E$1, 0)),A:A, ">="&Y2)

如果您在Y3中有其他值,则必要时填写。