首先,我将解释我已经拥有的内容(哪些有效),然后解释我的问题,即关于扩展它:
我有两个不同的电子表格需要同时处理,我需要查看另一个电子表格中是否已经输入了给定的值,因为它可能会改变结果。
IE。
如果我正在处理电子表格 1 并在 A1 中输入一个值,我希望它搜索电子表格 2 以查看它是否在 A 列的任何位置。如果是,我会沿着 1 条路径走,如果不是,我会沿着另一条路径走。
我目前使用的公式是这样的:
=IFERROR(IF(MATCH(A1,'[Spreadsheet 2.xlsx]Sheet1'!$A:$A,0),"Yes",),"")
这就是我想要的,如果电子表格 1、A1 中的值出现在电子表格 2、A 列的任何位置,我会得到“是”,如果没有,则空间留空。
但是我现在需要找出电子表格 1、A1 中的值是在电子表格 2 的 A 列中还是在电子表格 3 的 A 列中。
我不需要知道它出现在哪里,因此输入“是”或空白,我只需要知道它是否出现在电子表格 2 或 3 的 A 列中的任何位置。
我目前有这个公式,但它不起作用(它不会触发错误,只是没有按照我的需要去做:
=IFERROR(IF(MATCH(A1,'[Spreadsheet 2.xlsx]Sheet1'!$A:$A,0),"Yes", IF(MATCH(A1,'[Spreadsheet 3.xlsx]Sheet1'!$A:$A,0),"Yes",)),"")
如果电子表格 2 中有匹配项,则此方法有效,但如果仅电子表格 3 中有匹配项,则此方法无效。
我确信我只是做了一些愚蠢的事情,但我看不到它。
有人可以帮忙吗?
答案1
尝试使用ISERROR
函数。它并不简洁,IFERROR
但当您开始嵌套条件时更容易遵循。
=IF(AND(ISERROR(MATCH(A1,'[Spreadsheet 2.xlsx]Sheet1'!$A:$A,0)), ISERROR(MATCH(A1,'[Spreadsheet 3.xlsx]Sheet1'!$A:$A,0))),"","YES")
如果两个匹配函数都返回错误,则得到""
。如果其中一个返回非错误,则AND
返回FALSE
,结果为YES
。如果您想检查很多工作表而不是仅检查其他几张工作表,这会变得有点笨拙。