当表的第一列中有重复项时,vlookup如何工作

时间:2019-07-04 09:58:43

标签: excel vba excel-formula

我想根据vehicle_ID(查找值)检查2个不同的文件,两个文件之间是否有颜色变化。但是这里的车辆ID列中有重复项,所以我没有得到确切的值

VIN                  MAPPED_COLOR

VF12R071659666728   Cappuccino Noir Etoilé       
VF12R071659666728   Gris Cassiopée Noir Étoil
VF12R071659666730   Gris Platine Noir Etoilé
VF12R071659666731   Noir Etoilé Ivoire
VF12R071659666752   Rouge Flamme Noir Etoilé

=VLOOKUP($C$2:$C$25576,'[IZMOVN - COLOR MATCHING REPORT_3rd_July_2019_1.xlsx]IZMOVN - COLOR MATCHING REPORT'!$A:$Z,15,0)

VIN                     MAPPED_COLOR            V_loop_up_MAPPED_COLOR

VF12R071659666728   Cappuccino Noir Etoilé      Cappuccino Noir Etoilé  
VF12R071659666728   Gris Cassiopée Noir Étoil   Cappuccino Noir Etoilé  
VF12R071659666730   Gris Platine Noir Etoilé    Gris Platine Noir Etoilé    
VF12R071659666731   Noir Etoilé Ivoire          Noir Etoilé Ivoire  TRUE
VF12R071659666752   Rouge Flamme Noir Etoilé    Rouge Flamme Noir Etoilé    

2 个答案:

答案 0 :(得分:1)

假设一个VIN号只有两个匹配项(来自两个数据源),则可以使用此公式查找第二个匹配项:=INDEX(B1:B6,SMALL(IF(A1:A6=D2,ROW(A1:A6)-MIN(ROW(A1:A6))+1),2))

(请注意,这是一个数组公式,需要使用 CTRL +, SHIFT + ENTER 关闭, ENTER

我在以下屏幕截图中使用的公式:

E2: =INDEX(B1:B6,MATCH(D2,A1:A6,0))

F2: =INDEX(B1:B6,SMALL(IF(A1:A6=D2,ROW(A1:A6)-MIN(ROW(A1:A6))+1),2)) CTRL +, SHIFT + ENTER

G2: =IF(COUNTIFS(A1:A7,D2)>1,INDEX($B$1:$B$7,SMALL(IF($A$1:$A$7=$D2,ROW($A$1:$A$7)-MIN(ROW($A$1:$A$7))+1),2))=INDEX($B$1:$B$7,MATCH($D2,$A$1:$A$7,0)),TRUE) CTRL +, SHIFT + ENTER

Excel Screenshot

答案 1 :(得分:1)

如果数据表data1如下所示,请使用公式

MAPPED_COLOR列的前面添加一个帮助列,如下图(1)所示:
=A2 & "-" & COUNTIF($A$1:A2,A2)

在VIN上附加出现次数-1-2,使它们对于您的查找是唯一的。

enter image description here 图片1:工作表“ Data1”

然后在其他工作表中将1列添加到4或更多列中。请注意,名称必须是数字(别无其他!)。然后在B2中使用以下论坛

=IF(COUNTIF(Data1!$A:$A,$A2)>=B$1,VLOOKUP($A2 & "-" & B$1,Data1!$B:$C,2,FALSE),"")

并向下和向下复制以获得以下结果:

enter image description here 图片2:工作表“ Data2”