匹配和标记在Excel中重复的

我在Excel中有两个表

第一个表有一个id的产品列表

product_id | package_size | package_name 1 | 40 | product 1 2 | 100 | product 2 2 | 100 | product 2 2 | 50 | product 2 3 | 100 | product 3 3 | 100 | product 3 

第二个表有两列:

 product_id | multiple_package_size 1 | multiple_package_size 2 | multiple_package_size 3 | multiple_package_size 

我期望在第二张桌子上回来的是这样的:

 product_id | multiple_package_size 1 | 2 | x 3 | 

现在我的multiple_package_size列是空的,我试图把每个产品ID有多个包大小的X. 我一直在使用INDEX MATCH,但并没有标记每个产品有多个包装大小。 这里是我现在在multiple_package_size列中的公式:

 =if(INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,0)) = INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,1)),if(INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,1)) = INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,2)),if(INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,2)) = INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,3)),if(INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,3)) = INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,4)),if(INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,4)) = INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,5)),if(INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,5)) = INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,6)),if(INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,6)) = INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,7)),if(INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,7)) = INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,8)),if(INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,8)) = INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,9)),,"x"),"x"),"x"),"x"),"x"),"x"),"x"),"x"),"x") 

为了方便阅读:

 =if(INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,0)) = INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,1)), if(INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,1)) = INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,2)), if(INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,2)) = INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,3)), if(INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,3)) = INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,4)), if(INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,4)) = INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,5)), if(INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,5)) = INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,6)), if(INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,6)) = INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,7)), if(INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,7)) = INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,8)), if(INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,8)) = INDEX(Sheet3!$E$1:$E$89999,MATCH(A29,Sheet3!$A$1:$A$89999,9)), ,"x") ,"x") ,"x") ,"x") ,"x") ,"x") ,"x") ,"x") ,"x") 

我究竟做错了什么? 有一个更好的方法吗?

你需要的是检查COUNTIF

 =IF(COUNTIF(Sheet3!$A$1:$A$89999,A29) > 1, "x", "") 

我究竟做错了什么?

可能会误解MATCH函数的第三个参数。


如果第一个表有重复的行,这在第一个问题中是不可见的,那就更复杂一点了:

 =IF(AGGREGATE(14,6,Sheet3!$I$1:$I$89999/(Sheet3!$A$1:$A$89999=A29),1)<> AGGREGATE(15,6,Sheet3!$I$1:$I$89999/(Sheet3!$A$1:$A$89999=A29),1),"x", "") 

基本上它比较匹配产品ID的最大和最小包装尺寸,如果它们不同,则标记“x”。

PS我不完全确定列与你的数据完全一致,我只是试图从你的公式猜测他们。 我假设产品ID是sheet3列A,包大小是sheet3列I,search的值是A29。 如果需要调整它们。

PS2我认为你应该考虑简单地删除数据中的重复,如果这是一个选项。