检查键,值对是否存在,并将其返回到匹配旁边的行中

时间:2015-10-23 13:17:41

标签: excel excel-formula

我有汤姆给出的excel电子表格。在那张电子表格中,他给了我~1000个关键值对。

Tom's salesID, transID: 

salesID     transID
329709765   TODPG201110131205590838
329711175   TODPG201110131206560772
329712002   TODPG201110131207560344
329713688   TODPG201110131207570066
330220683   TODPG201110210902560629
330220789   TODPG201110210903570267
2004429174  TODPG201412051415130300

...

在我的数据库中,我找到了transID个,但是salesID个不同。所以,我需要将我的结果与Tom的结果合并。

汤姆希望看到差异,即

Tom's salesID, transID:                   My salesID, transID:

B           C                             E           F                         G           
salesID     transID                       salesID     transID                   match?
329709765   TODPG201110131205590838       227841258   TODPG201110131205590838
329711175   TODPG201110131206560772       635241526   TODPG201110131206560772
329712002   TODPG201110131207560344       201452635   TODPG201110131207560344
329713688   TODPG201110131207570066       412563578   TODPG201110131207570066
330220683   TODPG201110210902560629       472541526   TODPG201110210902560629
330220789   TODPG201110210903570267       330220789   TODPG201110210903570267   match
2004429174  TODPG201412051415130300       2004429174   TODPG201412051415130300  match

...

Tom和我的salesID可能有匹配,但不是很多......

通过这种方式,我可以向汤姆展示同一transID他的salesID和我的salesID不匹配。如果公式也说“匹配”会更好。紧挨着那些匹配......

这可能吗? 我有以下公式但到目前为止没有运气:

=IFERROR(INDEX($D$2:$D$1064,MATCH(D2,$H$2:$H$1067,0),1),"no match")

2 个答案:

答案 0 :(得分:1)

您可以使用VLOOKUP函数执行此操作...公式将类似于:

=VLOOKUP([tom's salesID],[Your 2 columns],2,FALSE)=[your transID]

那将返回真或假,然后你可以说它匹配'或者其他任何东西。请注意,VLOOKUP需要对数据(在本例中为salesID列)进行排序。不要将FALSE更改为TRUE - 这将导致它返回最接近的匹配salesID。 2指定应返回第二列(您的transID)。

编辑:抱歉,我认为您正在比较salesIDs以匹配transID,但您正朝着另一个方向前进。 VLOOKUP使用数组中的第一列作为索引,因此您必须交换B / C和E / F列,但是您可以这样做:

=IFERROR( IF(VLOOKUP(E3,B$3:C$999,2,FALSE)=F3,"match","no match") ,"transID not found")

我添加了一些内容,它还会告诉您Tom的列表中是否缺少您的transID。

example

答案 1 :(得分:0)

我想我明白你想要的是什么。试试这个(你的数据在B,C,E,F栏):

=IF(ISERROR(INDEX($E$3:$E$9,MATCH(E3&F3,$B$3:$B$9&$C$3:$C$9,0))),"","Match")

以数组形式输入(按 CTRL + SHIFT + ENTER

enter image description here

主要部分是索引/匹配,有两个参数

INDEX($E$3:$E$9,MATCH(E3&F3,$B$3:$B$9&$C$3:$C$9,0))

我正在使用E& F与列B和C范围匹配。您可以使用索引/匹配,匹配多个参数,只需将它们与&连接即可。如果那不是您所需要的,我想您可以看到如何调整 - 但如果没有,请告诉我!