Excel函数用于比较具有重复值的列

时间:2015-07-16 17:04:00

标签: excel excel-vba excel-formula vba

我使用excel并且有两列(A& B),其值为

我想在A列中搜索每个值并返回B列中的位置。 我使用这个公式:

IFERROR(MATCH("Values in Column A";"Array = Column B";0);0)

结果是:

Column A  | Column B  | Column C
  1       |   4       |   2
  2       |   1       |   3
  3       |   2       |   4
  4       |   1       |   1
  1       |   2       |   2
          |   3       | 

如果它没有遇到重复的值,它可以正常工作。但是,我希望它遇到重复的值,因此公式应该忽略之前遇到的那些并通过其他值。所以正确的结果应如下所示:

Column C  
  2  
  3  
  5  
  1  
  4
你能帮我解决这个问题吗?这有VBA例程吗?

1 个答案:

答案 0 :(得分:2)

在文章Getting the 2nd matching value from a list using VLOOKUP formula中,您可以创建一个帮助列来附加每个值的实例编号,以创建唯一的ID。

例如,在C列中,添加以下函数:

=A1&"-"&COUNTIF($A$1:A1,A1)
  

注意:计数范围的相对参考将导致适用范围在向下拖动时增长。在仅包含该单元格的范围内与该单元格匹配的项目的计数应始终为1。当它被拖下来包含其他单元格时,它会相应增加。

然后在D列中添加相同的内容以获取B列中的单元格实例:

=B1&"-"&COUNTIF($B$1:B1,B1)

最后,在列E中进行数学运算,如下所示:

=IFERROR(MATCH(C1,D:D,0),0)

Screenshot