使用Indirect()创建数组

时间:2018-09-28 13:44:30

标签: excel excel-formula

我正在尝试将电子邮件地址与另一张纸上的列表匹配。这是公式:

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

我的问题是,“间接”仅查看第一个值A1,而不查看列的其余部分。

您有什么想法吗?

2 个答案:

答案 0 :(得分:2)

这是因为您只检查MATCH是否返回1,即它是否位于第一个位置。但是,您实际上要检查的不是MATCH(...)=1是否是#N/A,而是ISNA才有意义。

尝试以下方法:

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

答案 1 :(得分:0)

MATCH以整数形式返回第一个匹配项的索引。仅当IF()中的值匹配时,您的A1条件才成立。

尝试这样的事情:

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