如何在Excel中组合INDEX,SMALL,ROW和MATCH功能?

时间:2013-10-08 01:28:33

标签: excel excel-2007 excel-formula

我有以下功能,但它返回的数据不是我想要的。

=IF(COLUMNS($R$2:R2)<=VLOOKUP($A2,[Sample.xls]Sheet1!$I$2:$K$27,3,FALSE),INDEX([Sample.xls]Sheet1!$G$2:$G$116,SMALL(IF([Sample.xls]Sheet1!$B$2:$B$116=VLOOKUP($A2,[Sample.xls]Sheet1!$I$2:$K$27,1,FALSE),ROW([Sample.xls]Sheet1!$B$2:$B$116)-ROW([Sample.xls]Sheet1!$B$2)+1),COLUMNS($R$2:R2))),0)

如果我使用单独的功能(例如下面的功能),它会为我提供数据,但不会提供其他功能中的验证。我如何结合这两个功能?

=INDEX([Sample.xls]Sheet1!$G$2:$G$116,MATCH(D2,[Sample.xls]Sheet1!$C$2:$C$116,0))

修改

示例数据类似于

Column1      Column2      Column3      Column4      Column5      Column6      Column7      Column8      Column9

   1      Label        System       Name         Total        GB           Available     GB          Server
   1      Label        System       Name         Total        GB           Available     GB          Server
   1      Label        System       Name         Total        GB           Available     GB          Server

然后我接受部分数据,例如一旦我匹配生成的工作表中具有相应标签的标签。标签有重复的值,例如视窗

1 个答案:

答案 0 :(得分:1)

根据我们的聊天情况,我认为您正在尝试执行以下操作:

Given two different values (labels) corresponding to two different columns, 
sum the data in a third column.

如果我理解正确,这就像“复合SUMIF”。在这种情况下,您要做的是创建一个与您要包含/排除的行对应的01数组,然后使用该列执行SUMPRODUCT你想要求和。

现在我们可以使用ARRAY FORMULA来生成这样的数组。这是一个简单的例子:假设这些单元格是A1:C6

label   system   space
 one     a          1
 one     b          2
 one     a          4
 two     b          8
 two     a         16

现在我们可以创建一个“复合汇总表”,查看“label”和“system”,如下所示(假设它们以单元格label中的A9开头:

label   system  total space
 one       a        5
 one       b        2
 two       a       16 
 two       b        8

您在C10中使用的公式是

=SUMPRODUCT(IF($A$2:$A$6=A10,1,0)*IF($B$2:$B$6=B10,1,0),$C$2:$C$6)

您输入的数组公式(CTRL-SHIFT-ENTER)。然后将其拖到单元格C11-13。这在我解释时执行计算。你可以从这里修饰。

如果我正确解释了这个,请告诉我?