Excel'de, bir hücrenin bir değerler listesinde (hücre aralığı) olup olmadığını nasıl kontrol ederim?


88

İsimler içeren bir aralık (A3: A10) var ve başka bir hücrenin (D1) içeriğinin listemdeki isimlerden biriyle eşleşip eşleşmediğini kontrol etmek istiyorum.

A3: A10 'some_names' aralığını verdim ve içeriğe bağlı olarak bana Doğru / Yanlış veya 1/0 verecek bir excel formülü istiyorum.

Yanıtlar:


92

= EĞERSAY (some_names D1)

çalışması gerekir (eğer ad varsa 1 - birden fazla örnek varsa).


Formülü nasıl değiştirebilirim, böylece some_names2 sütun içerdiğinde ve D1 yerine D1: E1 varsa?
user1993 18:17

66

Tercih ettiğim cevap (Ian’dan değiştirilmiş):

=COUNTIF(some_names,D1)>0

bu, eğer D1, bazı_adı aralıklarında en az bir kez bulunursa, TRUE, yoksa FALSE döner.

(COUNTIF, ölçüt aralığında kaç kez bulunduğunu gösteren bir tamsayı döndürür)


26

OP'nin listenin bir hücre aralığından geldiğini özellikle belirtdiğini biliyorum, ancak belirli bir değer aralığına bakılırken diğerleri bunun üzerine yanılabilir.

Ayrıca, MATCHişlevi kullanarak bir aralık yerine belirli değerlere de bakabilirsiniz . Bu size bunun eşleşeceği sayıyı verecektir (bu durumda, ikinci nokta, yani 2). Eşleşme yoksa # N / A döndürür.

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

İlk dördü bir hücreyle de değiştirebilirsiniz. A1 hücresine 4 koyun ve başka bir hücreye yazın.

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

1
Çok hoş. Değeriniz bir sayı değilse, "alıntı" eklemeyi unutmayın (bir kaçını ayırmaya çalıştım).
dav

1
Maalesef bunu şartlı biçimlendirmede kullanamazsınız :(
StarWeaver

Tabi ki yapabilirsin. Excel 2007 ve sonraki sürümlerinde, IFERROR işlevini kullanabilirsiniz. = IFERROR (MATCH (A1, {2,4,6,8}, 0), 0) Ardından, koşullu formatlama işleminizi, hangisi tercih ederseniz, o hücrenin = 0 veya> 0 olmasına göre yapabilirsiniz.
RPh_Coder

6
=OR(4={2,4,6,8})
Slai

Bu cevap, çözümün # N / A döndürdüğü açıktır - bu doğru. Ama yararsız görünüyor: if fıkrasında # N / A kullanamazsınız, bu yüzden IF (MATCH (4 {2,3}, 0), "yay", "boo") diyemezsiniz ... Cevap # N / A değil "boo"
GreenAsJade

18

Countif'i başka bir çıktıya (boolean gibi) dönüştürmek istiyorsanız, şunları da yapabilirsiniz:

= IF (COUNTIF (bazı_adı, D1)> 0, DOĞRU, YANLIŞ)

Keyfini çıkarın!


3
DOĞRU ve YANLIŞ yardım neyin değiştirilmesi gerektiğini gösterir
Darcys22


4

Boolean'ı döndüren ve aralarında some_namesaçıkça belirtilebilecek durumlarda küçük bir numara var "purple","red","blue","green","orange":

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

Not Bu bir dizi formülü DEĞİLDİR


Aslında, bir bir dizi formül. Ne öyle değil bir dizidir girilen formülünü ;-)
robinCTS

2

Sen yuva can --([range]=[cell])bir in IF, SUMIFSya da COUNTIFSargüman. Örneğin IF(--($N$2:$N$23=D2),"in the list!","not in the list"),. Bunun belleği daha verimli kullanabileceğine inanıyorum.

Alternatif olarak, bir ifadenin etrafına sarılmış ISERRORbir a VLOOKUPetrafına sarabilirsiniz IF. Gibi IF( ISERROR ( VLOOKUP() ) , "not in the list" , "in the list!" ).


0

Dizi Formülü sürümü (Ctrl + Shift + Enter ile girin):

=OR(A3:A10=D1)

Bu çalışıyor. Galiba bir downvote aldı çünkü downvoter bir dizi formülüne nasıl girileceğini bilmiyordu ... girdiğinizden sonra, {= OR (R34: R36 = T34)} gibi görünmeli, eğer doğru bir şekilde girdiyseniz
GreenAsJade

-1

Bu gibi durumlarda, yalnızca olası hatalardan haberdar olmak istiyorum, bu yüzden durumu bu şekilde çözerdim ...

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

O zaman bu formülü ' E1den' e kopyalarım E100. DSütundaki bir değer listede değilse, MISSING mesajını alırım ancak değer varsa boş bir hücre alırım. Bu, eksik değerlerin çok daha fazla öne çıkmasını sağlar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.