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.

Antworten:


92

= COUNTIF (some_names, D1)

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


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.)


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)

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!


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))


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


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!" ).


0

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

=OR(A3:A10=D1)

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.