Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于将列与重复值进行比较的Excel函数_Excel_Excel Formula_Vba - Fatal编程技术网

用于将列与重复值进行比较的Excel函数

用于将列与重复值进行比较的Excel函数,excel,excel-formula,vba,Excel,Excel Formula,Vba,我使用的是excel,有两列(A和B)带有值 我想搜索A列中的每个值并返回B列中的位置。 我用这个公式: IFERROR(MATCH("Values in Column A";"Array = Column B";0);0) 结果是: A列| B列| C列 1 | 4 | 2 2 | 1 | 3 3 | 2 | 4 4 | 1 | 1 1 | 2

我使用的是excel,有两列(A和B)带有值

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

IFERROR(MATCH("Values in Column A";"Array = Column B";0);0)
结果是:

A列| B列| C列
1       |   4       |   2
2       |   1       |   3
3       |   2       |   4
4       |   1       |   1
1       |   2       |   2
|   3       | 
如果它没有遇到重复的值,则可以正常工作。但是,我希望它遇到重复的值,因此公式应该忽略它以前遇到的值,并遍历其他值。因此,正确的结果应该如下所示:

C列
2.
3.
5.
1.
4
你能帮我吗?是否有VBA例程用于此

从文章中,您可以创建一个helper列来附加每个值的实例号,以创建唯一的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)

因此,如果已经在第二个列表中搜索了第一个列表中的数字,那么搜索第二个列表,但忽略第一个列表?如果该数字只在其中一列中重复出现会怎样?如果它遇到一个只在其中一列中重复出现的值,则公式返回值“0”,这就是我使用IFERROR.Oh的原因。从答案来看,你的E是+1,我认为它给出的是行号而不是列表position@Raystafarian,是的,很容易修复,在
D:D
上不匹配,但在
D2:D99
上匹配。现在,匹配数组第一个位置的项是列标题。但这仍然是正确的工具。