检查一个工作表上的字符串列中的任何单元格是否包含在另一个工作表上的字符串列中

检查一个工作表上的字符串列中的任何单元格是否包含在另一个工作表上的字符串列中

我的 Excel 工作表中有一列字符串。我正在寻找一种方法来编写工作表函数(不是 VBA),以便我可以判断每个单元格的值是否包含在第二个工作表中的一列字符串中。

谢谢你,

答案1

您需要“vlookup”函数。

例如,如果在 Sheet1 的 A 列中有字符串 - 并且您需要检查 Sheet2 的 A 列中是否存在这些字符串,那么您将在 Sheet1 的 B 列中输入以下内容:=vlookup(A1,sheet2!A:A,1,false)- 其结果要么是相同的字符串(如果存在)要么是 #N/A(如果不存在) - 您可以进一步使用iserror函数来检查这一点。结合两者,您可以写入:=if(iserror(vlookup(A1,sheet2!A:A,1, false), false, true))在 Sheet1 的 B1 单元格中 - 它将根据 A1 是否存在于 Sheet2 列中来显示“真”或“假”。依此类推。

答案2

VLOOKUP 可以工作,但我始终建议改用 MATCH,它对我来说似乎更简洁,并且适用于多列范围。与其他示例的原理类似:=NOT(ISNA(MATCH(LookupCell,ComparisonLookupRange,0)))

因此,MATCH 会在其他某个范围(可以是 1 行或 1 列或多行,即任意大小或形状)中查找您的值(例如 A1),例如 C1:E25,检查是否完全匹配 (0)。如果找到,则返回一个值,如果未找到,则返回 #N/A,因此 ISNA 会选择未找到的值,而 NOT 会将其反转,因此“True”的结果表示“在范围内”,而“False”的结果表示“未找到”

另一种方法是简单地使用 COUNTIF 来计算某个项目在其他范围内出现的次数,并检查该次数是否 > 0 =COUNTIF(C1:E25, A1)>0 如果在范围内找到 A1,则返回 True,否则返回 False(不要在不需要的地方坚持使用 IF,这已经是一个条件公式)。

同样,如果您需要的话,它可以支持多于一行和一列的范围。

在将这些公式从一个单元格复制到另一个单元格之前,不要忘记将 $ 放入公式中,为了便于阅读,我已将它们从示例中省略。

相关内容