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


88

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

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

Answers:


92

= COUNTIF(some_names,D1)

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


如何修改公式,使其在some_names包含2列的情况下起作用 ,并且代替D1,我还有D1:E1?
user1993年

66

我的首选答案(根据Ian的修改)是:

=COUNTIF(some_names,D1)>0

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

(COUNTIF返回该范围内找到条件的次数的整数)


26

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

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

=MATCH(4,{2,4,6,8},0)

您也可以将前四个替换为一个单元格。在单元格A1中放置4,然后将其键入其他任何单元格中。

=MATCH(A1,{2,4,6,8},0)

1
非常好。如果您的值不是数字,请不要忘记添加“引号”(请我尝试了一些尝试以解决这个问题)。
dav 2015年

1
可悲的是您不能在条件格式中使用它:(
StarWeaver

你当然可以。在Excel 2007和更高版本中,可以使用IFERROR函数。= IFERROR(MATCH(A1,{2,4,6,8},0),0)然后,您可以根据该单元格是= 0还是> 0进行条件格式化,以您喜欢的为准。
RPh_Coder '16

6
=OR(4={2,4,6,8})
斯莱

这个答案很清楚,该解决方案返回#N / A-是的。但这似乎无济于事:您不能在if子句中使用#N / A,因此不能说IF(MATCH(4 {2,3},0),“ yay”,“ boo”)...答案是
#N



4

如果some_names可以在以下位置显式指定范围,有一个漂亮的小技巧会返回布尔值"purple","red","blue","green","orange"

=OR("Red"={"purple","red","blue","green","orange"})

请注意,这不是数组公式


实际上,这一个数组公式。它不是输入数组的公式;-)
robinCTS

2

您可以嵌套--([range]=[cell])在一个IFSUMIFSCOUNTIFS争论。例如,IF(--($N$2:$N$23=D2),"in the list!","not in the list")。我相信这可能会更有效地使用内存。

或者,您可以将括ISERROR起来VLOOKUP,将所有括起来放在IF语句中。像IF( ISERROR ( VLOOKUP() ) , "not in the list" , "in the list!" )


0

数组公式版本(按Ctrl + Shift + Enter输入):

=OR(A3:A10=D1)

这可行。我认为它是有争议的,因为有争议的人不知道如何输入数组公式...输入后应该看起来像{= OR(R34:R36 = T34)},如果您正确输入的话
GreenAsJade

-1

在这种情况下,我只想被警告可能的错误,因此我将以这种方式解决这种情况...

=if(countif(some_names,D1)>0,"","MISSING")

然后将这个公式从复制E1E100。如果该D列中的值不在列表中,我将收到消息MISSING,但如果该值存在,则将得到一个空单元格。这使得缺失值更加突出。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.