題 在Excel中,如何檢查單元格是否在值列表中(一系列單元格)


我有一個包含名稱的範圍(A3:A10),我想檢查另一個單元格(D1)的內容是否與我列表中的某個名稱相匹配。

我把範圍命名為A3:A10'omen _ames',我想要一個excel公式,根據內容給我真/假或1/0。


85
2018-05-29 20:43


起源




答案:


= COUNTIF(some_names,D1)

應該工作(如果名稱存在,則為1 - 如果有多個實例則更多)。


89
2018-05-29 20:47



我怎樣才能修改公式,以便它在以下情況下工作 some_names 包含2列,而不是D1我有D1:E1? - user1993


我的首選答案(由Ian修改)是:

=COUNTIF(some_names,D1)>0

如果在some_names範圍內找到D1至少一次,則返回TRUE,否則返回FALSE。

(COUNTIF返回在範圍內找到標準的次數的整數)


65
2018-06-06 20:40





我知道OP特別聲明該列表來自一系列單元格,但其他人可能會在尋找特定範圍的值時偶然發現這一點。

您還可以查看特定值,而不是使用的範圍 MATCH 功能。這將給出匹配的數字(在這種情況下,第二個點,所以2)。如果沒有匹配,它將返回#N / A.

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

你也可以用一個單元替換前四個。在單元格A1中放入4並將其鍵入任何其他單元格。

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

26
2017-11-10 22:57



非常好。如果您的值不是數字,請不要忘記添加“引號”(我花了幾次嘗試對其進行排序)。 - dav
可悲的是你不能在條件格式中使用它:( - StarWeaver
你當然可以。使用Excel 2007及更高版本,您可以使用IFERROR功能。 = IFERROR(MATCH(A1,{2,4,6,8},0),0)然後,您可以根據自己的喜好對該單元格= 0還是> 0進行條件格式化。 - George Dooling
=OR(4={2,4,6,8}) - Slai
這個答案很清楚,解決方案返回#N / A - 這是真的。但似乎無益:你不能在if子句中使用#N / A,所以你不能說IF(MATCH(4 {2,3},0),“yay”,“boo”)......答案是#N / A不是“噓” - GreenAsJade


如果你想將countif轉換為其他輸出(如布爾值),你也可以這樣做:

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

請享用!


18
2018-05-29 21:09



IF(,TRUE,FALSE)是多餘的。 - pnuts
TRUE和FALSE幫助表明需要替換的內容 - Darcys22


對於多樣性,您可以使用MATCH,例如:

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


7
2018-05-29 23:28





在案例範圍內有一個漂亮的小技巧返回布爾值 some_names 可以明確指定 "purple","red","blue","green","orange"

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

請注意,這不是數組公式


3
2017-07-11 22:06



實際上,它 是 數組公式。它不是陣列 進入 公式;-) - robinCTS


你可以窩 --([range]=[cell]) 在一個 IFSUMIFS, 要么 COUNTIFS 論點。例如, 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!" )


2
2017-12-05 19:33





數組公式版本(使用Ctrl + Shift + Enter輸入):

=OR(A3:A10=D1)

0
2017-12-08 12:38



這很有效。我認為它有一個downvote,因為downvoter不知道如何輸入一個數組公式...它應該在輸入之後看起來像{= OR(R34:R36 = T34)},如果你正確地輸入它 - GreenAsJade