Wie überprüfe ich in Excel, ob eine Zelle in einer Werteliste (einem Zellbereich) enthalten ist?

88

Ich habe einen Bereich (A3: A10), der Namen enthält, und ich möchte überprüfen, ob der Inhalt einer anderen Zelle (D1) mit einem der Namen in meiner Liste übereinstimmt.

Ich habe den Bereich A3: A10 "some_names" genannt und möchte eine Excel-Formel, die mir je nach Inhalt Wahr / Falsch oder 1/0 gibt.

joseph.hainline
quelle

Antworten:

92

= COUNTIF (some_names, D1)

sollte funktionieren (1, wenn der Name vorhanden ist - mehr, wenn mehr als eine Instanz vorhanden ist).

pnuts
quelle
Wie kann ich die Formel so ändern, dass sie in dem Fall funktioniert, in dem die some_names2 Spalten enthält, und anstelle von D1 habe ich auch D1: E1?
user1993
66

Meine bevorzugte Antwort (geändert von Ians) ist:

=COUNTIF(some_names,D1)>0

Dies gibt TRUE zurück, wenn D1 mindestens einmal im Bereich some_names gefunden wird, andernfalls FALSE.

(COUNTIF gibt eine ganze Zahl zurück, wie oft das Kriterium im Bereich gefunden wurde.)

joseph.hainline
quelle
26

Ich weiß, dass das OP ausdrücklich angegeben hat, dass die Liste aus einer Reihe von Zellen stammt, aber andere könnten darauf stoßen, während sie nach einer bestimmten Reihe von Werten suchen.

Sie können mit der MATCHFunktion auch nach bestimmten Werten suchen, anstatt nach einem Bereich . Dies gibt Ihnen die Nummer, auf die dies zutrifft (in diesem Fall der zweite Punkt, also 2). Es wird # N / A zurückgegeben, wenn es keine Übereinstimmung gibt.

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

Sie können auch die ersten vier durch eine Zelle ersetzen. Fügen Sie in Zelle A1 eine 4 ein und geben Sie diese in eine beliebige andere Zelle ein.

=MATCH(A1,{2,4,6,8},0)
RPh_Coder
quelle
1
Sehr schön. Vergiss nicht, "Anführungszeichen" hinzuzufügen, wenn dein Wert keine Zahl ist (ich habe ein paar Versuche unternommen, das zu klären).
Dav
1
Leider können Sie dies nicht für bedingte Formatierungen verwenden :(
StarWeaver
Sicher kannst du. Ab Excel 2007 können Sie die Funktion IFERROR verwenden. = IFERROR (MATCH (A1, {2,4,6,8}, 0), 0) Anschließend können Sie Ihre bedingte Formatierung vornehmen, je nachdem, ob diese Zelle = 0 oder> 0 ist.
RPh_Coder
6
=OR(4={2,4,6,8})
Slai
Diese Antwort ist klar, dass die Lösung # N / A zurückgibt - das ist wahr. Aber es scheint nicht hilfreich zu sein: Sie können in einer if-Klausel nicht # N / A verwenden, daher können Sie nicht IF (MATCH (4 {2,3}, 0), "yay", "boo") sagen ... Die Antwort ist # N / A nicht "Boo"
GreenAsJade
18

Wenn Sie das countif in eine andere Ausgabe (wie boolean) umwandeln möchten, können Sie auch Folgendes tun:

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

Genießen!

Ian McClellan
quelle
3
Die TRUE und FALSE-Hilfe gibt an, was ersetzt werden muss
Darcys22
8

Für Abwechslung können Sie MATCH verwenden, z

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

Barry Houdini
quelle
4

Es gibt einen kleinen Trick, der Boolesche Werte zurückgibt, falls range some_namesexplizit angegeben werden könnte "purple","red","blue","green","orange":

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

Beachten Sie, dass dies KEINE Matrixformel ist

Vrun
quelle
Eigentlich ist es ist eine Matrixformel. Was es nicht ist, ist ein Array eingegebene Formel ;-)
RobinCTS
2

Sie können Nest --([range]=[cell])in einem IF, SUMIFSoder COUNTIFSArgumente. Zum Beispiel IF(--($N$2:$N$23=D2),"in the list!","not in the list"). Ich glaube, das könnte den Speicher effizienter nutzen.

Alternativ können Sie auch eine wickeln ISERRORum einen VLOOKUP, die alle um eine gewickelte IFErklärung. Wie IF( ISERROR ( VLOOKUP() ) , "not in the list" , "in the list!" ).

John Skilbeck
quelle
0

Array-Formel-Version (Eingabe mit Strg + Umschalt + Eingabetaste):

=OR(A3:A10=D1)
Slai
quelle
Das funktioniert. Ich denke, es hat eine Abwertung bekommen, weil der Abwähler nicht wusste, wie man eine Array-Formel eingibt ... es sollte nach der Eingabe so aussehen wie {= OR (R34: R36 = T34)}, wenn Sie es richtig eingegeben haben
GreenAsJade
-1

In solchen Situationen möchte ich nur auf mögliche Fehler aufmerksam gemacht werden, also würde ich die Situation auf diese Weise lösen ...

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

Dann würde ich diese Formel von E1nach kopieren E100. Wenn ein Wert in der DSpalte nicht in der Liste enthalten ist, wird die Meldung MISSING angezeigt. Wenn der Wert vorhanden ist, wird eine leere Zelle angezeigt. Das macht die fehlenden Werte noch deutlicher.

Catchoval
quelle