Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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_Vba - Fatal编程技术网

查找匹配项的Excel公式

查找匹配项的Excel公式,excel,vba,Excel,Vba,我有两张工作表 在一个工作表中,我有一个名为序列号的列 第二张工作表也有一列序列号 这两个工作表有重叠的数据,我需要找到两个工作表中的数据 对我需要使用的公式有什么建议吗?(VBA代码也是可以接受的)您可以使用 =NOT(ISERROR(MATCH(A1,Sheet1!$A$1:$A$4,0))) 其中,第1页上的序列号位于单元格A1:A4中,第二页上的序列号位于单元格A1中 如果A1在Sheet1列表中,则此公式返回true =NOT(ISERROR(MATCH(A1,Sheet1!$A$1

我有两张工作表

在一个工作表中,我有一个名为序列号的列

第二张工作表也有一列序列号

这两个工作表有重叠的数据,我需要找到两个工作表中的数据


对我需要使用的公式有什么建议吗?(VBA代码也是可以接受的)

您可以使用

=NOT(ISERROR(MATCH(A1,Sheet1!$A$1:$A$4,0)))
其中,第1页上的序列号位于单元格A1:A4中,第二页上的序列号位于单元格A1中


如果A1在Sheet1列表中,则此公式返回true

=NOT(ISERROR(MATCH(A1,Sheet1!$A$1:$A$4,0)))
其中,第1页上的序列号位于单元格A1:A4中,第二页上的序列号位于单元格A1中


如果A1在Sheet1列表中,则此公式返回true

我认为VLookup会帮您解决问题

我有一张A1:A6中有以下内容的表2:

SerNo
1001
1002
1003
1004
1005
Serno
1003
1005
99
98
97
然后在下一张纸上,我在A1:A6中有相似但不完全相同的数字:

SerNo
1001
1002
1003
1004
1005
Serno
1003
1005
99
98
97
在B2中,我使用公式
=VLOOKUP(A2,Sheet2!$A$2:$A$6,1,FALSE)
并将其复制到B6。这意味着:查找A2(1003)中的值,看看是否可以在单元格A2到A6的表2中找到它。(
$A$2:$A$6
表示绝对值,当我将B2复制到B6时,它会在Sheet2序列号处保持参考绝对值,并且不会向下移动。1表示使用第一列序列号。FALSE表示必须进行精确查找。)

(您也可以将其设置为命名范围,而不是
$a2:$a6
,我认为这样会更干净一些。)

VLookup列具有:

1003
1005
#N/A
#N/A
#N/A

并显示哪里有比赛(哪里没有)。

我想VLookup会帮你搞定的

我有一张A1:A6中有以下内容的表2:

SerNo
1001
1002
1003
1004
1005
Serno
1003
1005
99
98
97
然后在下一张纸上,我在A1:A6中有相似但不完全相同的数字:

SerNo
1001
1002
1003
1004
1005
Serno
1003
1005
99
98
97
在B2中,我使用公式
=VLOOKUP(A2,Sheet2!$A$2:$A$6,1,FALSE)
并将其复制到B6。这意味着:查找A2(1003)中的值,看看是否可以在单元格A2到A6的表2中找到它。(
$A$2:$A$6
表示绝对值,当我将B2复制到B6时,它会在Sheet2序列号处保持参考绝对值,并且不会向下移动。1表示使用第一列序列号。FALSE表示必须进行精确查找。)

(您也可以将其设置为命名范围,而不是
$a2:$a6
,我认为这样会更干净一些。)

VLookup列具有:

1003
1005
#N/A
#N/A
#N/A

并显示哪里有匹配项(哪里没有匹配项)。

我用一个已知的副本进行了尝试,结果显示为False=不是(iError(匹配(A2,Sheet1!$B$1:$B$2000,0))(序列号显示在Sheet1的B列中)序列号的格式是什么?如果它们是文本,并且一个集合有尾随空格,则匹配将失败。如果它们是数字,您可以使用:=NOT(iError(匹配(值(A1),值(Sheet1!$B$1:$B$2000),0))作为数组公式(按shift-ctrl-enter),Excel将在比较它们之前将它们转换为数字。它们都是5或6位数字,如335123,但我认为Excel没有将它们视为数字。我将单元格格式化为0位小数=非的数字(iError(匹配(值(A1),值(Sheet1!$B$1:$B$2000),0)),因为数组公式应该可以工作,因为它将强制Excel首先将它们作为数字进行计算。我使用已知的重复项尝试了此操作,结果显示为False=不是(iError(匹配(A2,Sheet1!$B$1:$B$2000,0))(序列号显示在Sheet1的B列中)序列号的格式是什么?如果它们是文本,并且一个集合有尾随空格,则匹配将失败。如果它们是数字,您可以使用:=NOT(iError(匹配(值(A1),值(Sheet1!$B$1:$B$2000),0))作为数组公式(按shift-ctrl-enter),Excel将在比较它们之前将它们转换为数字。它们都是5或6位数字,如335123,但我认为Excel没有将它们视为数字。我将单元格格式化为0位小数=非的数字(ISERROR(匹配(值(A1),值(Sheet1!$B$1:$B$2000),0)),因为数组公式应该起作用,因为它将强制Excel首先将它们作为数字进行计算。这将检测到一些误报。试试1006吧,比如说好的渔获量,@JDunkerley。我对答案进行了编辑,使其包含了一个错误的范围查找。这将检测到一些误报。试试1006吧,比如说好的渔获量,@JDunkerley。我对答案进行了编辑,以包含一个范围查找,该范围查找为False。