我有一个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 B P
10834282
21676286
21726281
最终我要做的是在Sheet2上将Meter = B作为SITEID放在列中,然后将Meter = P放在同一行中。
我从未使用过索引或匹配,我在网上查了一下,但我很困惑,希望有人能用正确的方法帮助我,或指出我正确的方向。
非常感谢!
答案 0 :(得分:4)
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 + 输入,然后您可以将其填充到其他单元格。
我必须使用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))
EDIT2:添加修剪:
=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))
EDIT3:如果您在完整数据上使用它,请更改范围:
=INDEX(Sheet1!$B:$B,MATCH($A2*1,IF(TRIM(Sheet1!$C:$C)=TRIM(B$1),Sheet1!$A:$A*1),0))
答案 1 :(得分:1)
假设您的Sheet1看起来像这样:
你的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
答案 2 :(得分:0)
辅助列D添加到初始列中
D2:=$A2 & $C2
现在可以简单搜索连接的SITE_ID和SUSE_CD:
H2:=MATCH($G2&" B";$D$2:$D$8;0)
结果将是数组$D$2:$D$8
中所需字符串的行号(在本例中为= 1)。
INDEX显示通过从左上方单元格(A2)计算数组$A2:$A$8
中的第n行(由MATCH定义)和第m列(= 2)得到的单元格的值。
总而言之:=INDEX($A$2:$B$8;MATCH($G2&" B";$D$2:$D$8;0);2)
答案 3 :(得分:0)