0

这不会出错,它只是给了我“错误”的结果。我在想我无法从两个不同的来源进行 vlookup,但想要验证?如果没有,是否有替代方案的建议?谢谢!

=IF(ISBLANK(A69),"",IF(ISNA(VLOOKUP(A69,sheets!J:J,1,FALSE)),IF(ISNA(VLOOKUP(A69,Lines!B:B,1,FALSE)),"No Match",IF(VLOOKUP(A69,sheets!J:J,1,FALSE),"Matches sheet",IF(VLOOKUP(A69,Lines!B:B,1,FALSE),"Line","No Match")))))
4

3 回答 3

1

你想先检查哪个?也许尝试 MATCH 因为您似乎只想验证匹配的存在,即

=IF(A69="","",IF(ISNA(MATCH(A69,sheets!J:J,0)),IF(ISNA(MATCH(A69,Lines!B:B,0)),"No Match","Line"),"Matches sheet"))

如果在两张表中都找到 A69,则将显示“匹配表” ,如果您不希望这样,则颠倒 MATCHES/文本的顺序。

...或使用 COUNTIF

=IF(A69="","",IF(COUNTIF(sheets!J:J,A69),"Matches Sheet",IF(COUNTIF(Lines!B:B,A69),"Line","No Match")))

于 2013-02-12T23:20:36.313 回答
0

您最好在行中的单独单元格中进行每次查找。您也可以使用 MATCH 而不是 VLOOKUP。除了不正确的嵌套之外,您正在做的事情不应该有问题。

于 2013-02-12T23:20:26.597 回答
0

您可能想要放弃 ISNA 测试,而是尝试将所有 VLOOKUPS 包装在 NOT(ISERROR(...)) 中。我得到的公式是:

  =IF(ISBLANK(A69),"",IF(NOT(ISERROR(VLOOKUP(A69,sheets!J:J,1,FALSE))),IF(NOT(ISERROR(VLOOKUP(A69,Lines!B:B,1,FALSE))),"No Match",IF(NOT(ISERROR(VLOOKUP(A69,sheets!J:J,1,FALSE))),"Matches sheet",IF(NOT(ISERROR(VLOOKUP(A69,Lines!B:B,1,FALSE))),"Line","No Match")))))

在我非常有限的测试中,这个公式产生了“匹配表”的结果。您应该检查它是否会产生您正在使用数据集寻找的结果。

于 2013-02-12T23:38:09.900 回答