Excel INDEX和MATCH获取价值

我有一个Excel工作簿,我需要一些帮助INDEX和MATCH或任何其他公式,可以让我最终的结果。

这里是sheet1:

SIT_ID METER SUSE_CD 10834282 DT0061 B 10834282 AW7931 P 21676286 CQ9635 P 21676286 DP4838 B 21726281 AW7880 P 21726281 DT0032 B 

这里是Sheet2:

 Site ID BP 10834282 21676286 21726281 

最终,我正在试图做的是在Sheet2上将SITEID中的B = S表置于列中,然后将P = P表放在同一行中。

我从来没有使用索引或匹配,我在网上查,但我很困惑,希望有人可以帮助我正确的公式或指向我在正确的方向。

非常感谢!

INDEX首先需要一个范围,然后是一个行号,一个可选的列号(和一个可选的区号)。

MATCH需要查找值,数组和模式。

在您的问题中您可以在Sheet2单元格B2中使用以下内容:

 =INDEX(Sheet1!$B$2:$B$7, MATCH($A2, IF(Sheet1!$C$2:$C$7=B$1,Sheet1!$A$2:$A$7), 0)) 

这个公式是一个数组公式,并且可以用Ctrl + Shift + Enter工作 ,然后你可以把它填充到其他单元格中。

我必须使用IF因为有两个条件要检查。

编辑:如果你的单元格格式不同,使用这个:

 =INDEX(Sheet1!$B$2:$B$7,MATCH($A2*1,IF(Sheet1!$C$2:$C$7=B$1,Sheet1!$A$2:$A$7*1),0)) 

编辑2:添加修剪:

 =INDEX(Sheet1!$B$2:$B$7,MATCH($A2*1,IF(TRIM(Sheet1!$C$2:$C$7)=TRIM(B$1),Sheet1!$A$2:$A$7*1),0)) 

编辑3:如果你使用它的全部数据,改变范围:

 =INDEX(Sheet1!$B:$B,MATCH($A2*1,IF(TRIM(Sheet1!$C:$C)=TRIM(B$1),Sheet1!$A:$A*1),0)) 

假设你的Sheet1看起来像这样:

tigeravatar Sheet1数据设置

而你的Sheet2看起来像这样:

tigeravatar Sheet2数据设置

在Sheet2单元格B2中复制并复制到单元格C4的公式是:

 =INDEX(Sheet1!$B$2:$B$7,MATCH(1,INDEX((Sheet1!$A$2:$A$7=$A2)*(Sheet1!$C$2:$C$7=B$1),),0)) 

请注意,这是一个常规公式,所以不需要Ctrl + Shift + Enter

辅助列D被添加到初始列。
D2: =$A2 & $C2

现在可以对连接的SITE_ID和SUSE_CD进行简单search:
H2: =MATCH($G2&" B";$D$2:$D$8;0)

结果将是数组$D$2:$D$8 )中所需string的行号(在这种情况下为1)。

INDEX显示单元格的值,通过从左上angular的单元格(A2)数组$A2:$A$8的第n行(由MATCH定义)和第m列(= 2)计算而得到。

总共: =INDEX($A$2:$B$8;MATCH($G2&" B";$D$2:$D$8;0);2)

在这里输入图像说明