如何合并:INDEX + MATCH +?VLOOKUP?

时间:2018-08-16 07:51:40

标签: excel excel-formula

我遇到了INDEX + MATCH组合的问题:

=INDEX(ALL!$C$1:$I$1,MATCH(TRUE,ALL!C2:I2<>0,0))

目前,上述公式在一定程度上完成了此工作,如果它在一行中找到<> 0值,它将从该特定列返回标头。问题是需要指定ROW(如C2:I2所示)。

我需要在表“ ALL”中的“ A”列中查找值,并基于此查找C:I之间的对应行,如果该特定行中的值是<> 0,则返回标题值。

enter image description here

因此,以绿色显示,我需要一个公式来根据值1或任何<> 0值从“数据源”标题中选取数字。我猜这一切都导致某种形式的“ vlookup”混合。

任何想法如何在其中组合vlookup?

谢谢

2 个答案:

答案 0 :(得分:0)

一个简单的=SUMIF()公式就可以了,不需要其他复杂的INDEX()MATCH()嵌套公式。

  

假设我们有一个数据表,该数据表的起始位置为B2,结束于   F6,像这样:

     

enter image description here

现在,要理解该解决方案,以下是SUMIF()公式Function的语法:

=SUMIF( range, criteria, [sum_range] )

所以,我们要做的是:

  1. 遍历range的{​​{1}}(彼此对应的行)
  2. C3:F3包含在criteria中的时候是range
  3. 我们想1(求和)固定的数字数组,所以sum_range

结果是(对于第3行):

$C$2:$F$2

然后将公式向下拖动,产生预期结果:

enter image description here


PS:我认为这很好地说明了这一点,即为什么重要的是不仅要声明公式正在做的事情,而且还要声明整个工作要做的事情,因为通常会有更好(更容易)的方式来实现某些您可能没有想到的方法。

换句话说,遵循Minimal, Complete and Verifiable Example

答案 1 :(得分:0)

如果每行只能有一个'1',我在想这个

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

enter image description here

否则,如果可以有多个'1'

=INDEX($B$1:$E$1,MATCH(TRUE,INDEX(B:E,MATCH(G2,A:A,0),0)>0,0))

匹配第一个大于零的值,在这种情况下,该值作为数组公式输入。