我使用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例程吗?
答案 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)