在 Excel 中,如何检查单元格是否在值列表(单元格范围)中

jos*_*ine 96 worksheet-function microsoft-excel

我有一个包含名称的范围 (A3:A10),我想检查另一个单元格 (D1) 的内容是否与列表中的名称之一匹配。

我已将范围 A3:A10 命名为“some_names”,并且我想要一个 excel 公式,该公式将根据内容给出 True/False 或 1/0。

pnu*_*uts 96

=COUNTIF(some_names,D1)

应该可以工作(如果名称存在,则为 1 - 如果有多个实例,则为更多)。


jos*_*ine 70

我的首选答案(从 Ian 修改而来)是:

=COUNTIF(some_names,D1)>0
Run Code Online (Sandbox Code Playgroud)

如果在 some_names 范围内找到 D1 至少一次,则返回 TRUE,否则返回 FALSE。

(COUNTIF 返回一个整数,表示在该范围内找到该条件的次数)


小智 30

我知道 OP 特别指出该列表来自一系列单元格,但其他人可能会在寻找特定范围的值时偶然发现这一点。

您还可以使用该MATCH函数查找特定值,而不是范围。这会给你匹配的数字(在这种情况下,第二个位置,所以 2)。如果没有匹配,它将返回#N/A。

=MATCH(4,{2,4,6,8},0)
Run Code Online (Sandbox Code Playgroud)

您也可以用一个单元格替换前四个。在单元格 A1 中输入 4 并将其输入到任何其他单元格中。

=MATCH(A1,{2,4,6,8},0)
Run Code Online (Sandbox Code Playgroud)

  • `=OR(4={2,4,6,8})` (8认同)

小智 18

如果您想将 countif 转换为其他输出(如布尔值),您还可以执行以下操作:

=IF(COUNTIF(some_names,D1)>0, TRUE, FALSE)

享受!

  • TRUE 和 FALSE 帮助指示需要更换的内容 (3认同)

bar*_*ini 8

对于多样性,您可以使用 MATCH,例如

=ISNUMBER(MATCH(D1,A3:A10,0))


小智 8

如果some_names可以明确指定范围,则有一个漂亮的小技巧返回布尔值,例如"purple","red","blue","green","orange"

=OR("Red"={"purple","red","blue","green","orange"})
Run Code Online (Sandbox Code Playgroud)

请注意,这不是数组公式