2015-11-22 98 views
0

表中有B到Z列。如果列A的值大于或等于“Mar-15”,我想对包含“Mar-15”的列进行求和。SUMIFS:如何在指定范围时将公式写入公式?

所以,如果我有在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的列中的值相加。因此,在这里,公式所需的答案是,因为Y2包含Mar-15

更清晰,如果Y2包含APR-15,那么结果在Z2应该

现在,我有公式

=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

行或列,可以“拼接”出与INDEX function的长方形矩阵。 A , 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额外值等必要向下填充。

+0

这就是我正在寻找的!我正在玩INDEX功能,但不能像你所做的那样正确地做到。万分感谢!它像一个魅力:) – user3164272

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

+0

为什么SUMPRODUCT而不是SUMIF? – Jeeped