0

表中有 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 包含Apr-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,并指定列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,但这不起作用。

4

2 回答 2

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 乘以所选列值以获得结果。

如果您想进一步阅读请看这里

于 2015-11-22T18:34:01.007 回答
2

可以使用INDEX 函数将行或列从矩形矩阵中“拼接”出来。一个, 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 等中有其他值,请根据需要填写。

于 2015-11-22T18:56:46.587 回答