希望你能提供帮助。我有2张excel表,看起来像这样:
Sheet1:
ID trnx Module
1 aj08 AA
2 aj08 AA
3 aj08 AA
1 CJ20 ps opex
1 CJ20 ps capex
2 cn22 HR
Sheet 2
ID trnx Module
1 aj08
2 aj08
1 ml81
3 aj08
2 cn22
1 cj20
1 cj20
3 mm02
使用的公式是
INDEX($G$2:$G$9,SMALL(IF(A2=$F$2:$F$9,ROW($F$2:$F$9)-MIN(ROW($F$2:$F$9))+1,"")&IF(C2=$H$2:$H$9,ROW($H$2:$H$9)-MIN(ROW($H$2:$H$9))+1,""),COUNTIF(A$2:A$2,A2)&COUNTIF(C$2:C$2,C2)))
我需要根据匹配的ID和trnx来填充表2中的“模块”,如果ID匹配但不匹配trnx,那么它必须将模块的单元格设置为“No Match”。
我遇到的问题是表2正在填充错误的数据。例如,表2中第二次出现ID“1”正在拉出模块ps opex。因为表2中的trnx是ml81,所以假设是“不匹配”。
请帮忙!!!在此先感谢:)
答案 0 :(得分:0)
这不会解决我在评论中提到的您有“重复密钥”的部分,但无论如何都可以帮助您:
由于您的密钥实际上是Id
和trnx
列的组合,因此我插入了一个连续列(我使用了=CONCATENATE(trnx, "_", id)
,其中这些名称指的是工作表位置,但您可以就像在另一个方向上容易连接一样,或者使用其他一些分隔符。它只是制作一个单一的键列(我们可以对它进行排序和搜索更容易。)
在表2中,我从其中列出的值形成相同的键列,然后您的模块列变为:
=IF(ISNA(VLOOKUP(I12,$C$10:$D$15,2,0)), "No Match", VLOOKUP(I12,$C$10:$D$15,2,0))
在该公式中,I12是我们在工作表2中查找的关键单元格,VLOOKUP中的绝对引用是工作表1中的数据表。