Excel 使用间接()创建数组

Excel 使用间接()创建数组,excel,excel-formula,Excel,Excel Formula,我正在尝试将电子邮件地址与其他工作表上的列表进行匹配。以下是公式: =IF(MATCH(B11,INDIRECT("'"&$D$1&"'!$a$1:$a$1000",1),0)=1,"No","Yes") 我的问题是间接只查看第一个值A1,而不查看列的其余部分 你有什么想法吗?这是因为你只检查你的匹配是否返回1,即是否在第一个位置。但实际上,您要检查的不是匹配(…)=1,而是是否为N/A,因此ISNA更有意义 请尝试以下方法: =IF(ISNA(MATCH(B11,INDIRE

我正在尝试将电子邮件地址与其他工作表上的列表进行匹配。以下是公式:

=IF(MATCH(B11,INDIRECT("'"&$D$1&"'!$a$1:$a$1000",1),0)=1,"No","Yes")
我的问题是间接只查看第一个值A1,而不查看列的其余部分


你有什么想法吗?

这是因为你只检查你的
匹配是否返回
1
,即是否在第一个位置。但实际上,您要检查的不是
匹配(…)=1
,而是
是否为N/A
,因此
ISNA
更有意义

请尝试以下方法:

=IF(ISNA(MATCH(B11,INDIRECT("'"&$D$1&"'!$A:$A"),0)),"Yes","No")

MATCH
以整数形式返回第一个匹配的索引。只有当值在
A1
中匹配时,您的
IF()
条件才会为真

试着这样做:

=IF(ISNUMBER(MATCH(B2,INDIRECT("'"&$D$1&"'!$A$1:$A$1000",1),0)),"Yes","No")

谢谢你的快速回复。我一字不差地复制了它,它返回“是”,而不是在这种情况下。我应该寻找什么?更新后,我删除了ISNA和我的结果或“否”,这是正确的,“不适用”,我希望是“是”。想法?@Daryn,与
=IF(ISNA(匹配(B11,间接(“'”&$D$1&“!$A:$A:$A”),0)),“是”,“否”)
=IF(ISNA(…),A,B)
=IF(ISNA(…),B,A)相同
。您没有更改
MATCH
子句的任何部分……您是否确实尝试切换“是”和“否”参数?在您的示例中,我说的是“您没有第一个”,而不是不将“是”放在“否”的前面。您可以将“否”保留在“否”中,但您的公式将变得更长,因此更难阅读,而且(每分钟一次)效率较低。嗨,瓦隆。谢谢你的帮助。第一个答案的公式按预期运行。