2013-05-29 20:43:50 +0000 2013-05-29 20:43:50 +0000
89
89

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

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 ich hätte gerne eine Excel-Formel, die mir je nach Inhalt Wahr/Falsch oder 1/0 liefert.

Antworten (9)

92
92
92
2013-05-29 20:47:46 +0000

=COUNTIF(some_names,D1)

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

66
66
66
2013-06-06 20:40:03 +0000

Meine bevorzugte Antwort (modifiziert von Ian’s) ist:

=COUNTIF(some_names,D1)>0

, die WAHR zurückgibt, wenn D1 mindestens einmal im Bereich some_names gefunden wird, oder andernfalls FALSCH.

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

26
26
26
2014-11-10 22:57:45 +0000

Ich weiß, dass das OP ausdrücklich angegeben hat, dass die Liste aus einem Bereich von Zellen stammt, aber andere könnten darüber stolpern, wenn sie nach einem bestimmten Wertebereich suchen.

Mit der Funktion MATCH können Sie auch nach bestimmten Werten statt nach einem Bereich suchen. Dadurch erhalten Sie die Nummer, bei der dies zutrifft (in diesem Fall die zweite Stelle, 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. Setzen Sie eine 4 in Zelle A1 und tippen Sie diese in eine beliebige andere Zelle.

=MATCH(A1,{2,4,6,8},0)
18
18
18
2013-05-29 21:09:03 +0000

Wenn Sie den Countif in eine andere Ausgabe (z.B. boolean) umwandeln wollen, könnten Sie auch Folgendes tun:

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

Enjoy!

8
8
8
2013-05-29 23:28:54 +0000

Für Vielfalt können Sie MATCH verwenden, z.B.

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

5
5
5
2018-07-11 22:06:20 +0000

es gibt einen raffinierten kleinen Trick, der boolesche Ergebnisse liefert, wenn der Bereich some_names explizit so in "purple","red","blue","green","orange" angegeben werden könnte:

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

Beachten Sie, dass dies KEINE Array-Formel ist

2
2
2
2013-12-05 19:33:00 +0000

Sie können --([range]=[cell]) in einem IF-, SUMIFS- oder COUNTIFS-Argument verschachteln. Zum Beispiel IF(--($N$2:$N$23=D2),"in the list!","not in the list"). Ich glaube, dadurch könnte der Speicher effizienter genutzt werden.

Alternativ können Sie eine ISERROR um eine VLOOKUP herumschachteln, alles um eine IF-Anweisung herumschachteln. Wie zum Beispiel IF( ISERROR ( VLOOKUP() ) , "not in the list" , "in the list!" ).

0
0
0
2016-12-08 12:38:21 +0000

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

=OR(A3:A10=D1)
-1
-1
-1
2013-08-24 11:59:30 +0000

In Situationen wie dieser möchte ich nur auf mögliche Fehler aufmerksam gemacht werden, also würde ich die Situation so lösen …

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

Dann würde ich diese Formel von E1 nach E100 kopieren. Wenn ein Wert in der Spalte D nicht in der Liste ist, erhalte ich die Meldung MISSING, aber wenn der Wert existiert, erhalte ich eine leere Zelle. Dadurch heben sich die fehlenden Werte viel stärker hervor.