如何在Excel中组合索引、小、行和匹配函数?

如何在Excel中组合索引、小、行和匹配函数?,excel,excel-2007,excel-formula,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]

我有下面的函数可以很好地工作,但是它返回的数据不是我想要的

=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)
编辑

示例数据如下所示

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

然后,当我匹配结果工作表中具有相应标签的标签时,我将获取部分数据,例如总计。标签具有重复值,例如Windows

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

如果我理解正确,这就像一个“复合SUMIF”。在这种情况下,您要做的是创建一个由
0
s和
1
s组成的数组,对应于要包含/排除的行,然后对要求和的列执行一个
SUMPRODUCT

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

label   system   space
 one     a          1
 one     b          2
 one     a          4
 two     b          8
 two     a         16
现在,我们可以创建一个“复合汇总表”,查看“标签”和“系统”,如下所示(假设它们以单元格
A9
中的
label
开头):

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。这将按照我的解释执行计算。您可以从这里进行润色


让我知道我的解释是否正确?

嗨,你能提供样本数据和样本结果吗?谢谢。@L42-我已经包含了样本数据。结果是一个单一的值,例如2.5你引用了一列
B
R
…但只显示了9列。你的示例中缺少什么?“它返回的数据不是我想要的。它返回的是什么?你能这样做以便我们能够真正复制你的问题吗?这
2.5
从何而来?如果用你自己的话说,包括你正在努力完成的任务,这会有所帮助。大致如下”在B列中查找所有小于x的值;求和;在R列开始的表格中查找结果;“…”——显然,这不是你正在做的事情。我刚刚看了那个视频,我无法将它与你正在做的事情联系起来。你必须让你的问题更清楚。“标签上有重复的值,例如Windows。”“???对不起-不明白。这正是我要找的。唯一的缺点是,如果a或b有多个实例,则每个实例的空间都被视为总数。有没有办法避免这种情况?你说的“多个实例”是什么意思?”?这就是我们在这里看到的……我认为这是故意的。如果不是,那么您希望/期望在上述情况下的结果是什么(我在两列上进行聚合,因此
a
的结果是
5
1+4
)。很抱歉没有明确说明。标签有多个实例,但在该实例中,给定标签的系统有多个实例,我不希望将这些值组合在一起。有没有办法单独处理这些值?@PeanutsMonkey我认为,如果您能提供一个带有一些va的示例电子表格,事情会变得更清楚尽可能接近您所拥有的值。否则,我认为您将得不到您想要的,或者我们将理解您试图描述的内容。请尝试上载一个。@Jerry是对的。在上面的示例中,您希望显示什么-以及如何显示。您希望值分别列在不同的列中吗?您想要两行吗?我们是否可以为您提供另一列这使得系统具有唯一性(例如“系统ID”)。但是如果根本没有聚合,为什么我们不显示整个表?是否有一个“从我的表中查找特定行”,其中“特定行”实际上与多个条件匹配?我想我理解了,但我又一次感到困惑。您希望最终如何使用它。。。
label   system  total space
 one       a        5
 one       b        2
 two       a       16 
 two       b        8
=SUMPRODUCT(IF($A$2:$A$6=A10,1,0)*IF($B$2:$B$6=B10,1,0),$C$2:$C$6)