Zählen einer Zelle, WENN sie ein oder mehrere Wörter aus einer Liste enthält

Zählen einer Zelle, WENN sie ein oder mehrere Wörter aus einer Liste enthält

Ich habe eine Tabelle, in der die Schüler aufgelistet sind, die eines unserer Hausaufgabenzentren besuchen. Die Tabelle listet die Sprachen auf, die die Schüler sprechen, und ich möchte die Fälle zählen, in denen Schüler bestimmte Sprachen sprechen, wie im folgenden Beispiel, in dem die Spalte „Sprache“ des Schülers einen benannten Bereich hat, der auf „registerListLanguage“ festgelegt ist:

Name des Schülers Schülersprache
Falscher Name albanisch
Ein anderer Urdu
Schüler 1 Urdu, Panjabi, Italienisch
Schüler 2 Punjabi
Schüler 3 Urdu und Punjabi

Dies ist einfach, wenn die Schüler nur eine Sprache sprechen (z. B. Albanisch) mit einem einfachen =SUMME(ZÄHLENWENNS(registerListLanguage, "albanisch")

In vielen Fällen sprechen unsere Schüler jedoch zwei oder mehr Sprachen, was bedeutet, dass wir die Sprachen auflisten müssen, die sie sprechen (wie Schüler 1 im obigen Beispiel).

Meine Vorgesetzten möchten, dass ich Angaben zu Schülern machen kann, die Urdu ODER Punjabi sprechen, und es fällt mir wirklich schwer, eine genaue Zahl zu ermitteln … Im Moment verwende ich die folgende Formel:

=SUM(COUNTIFS(registerListLanguage, {"*Urdu*","*Punjabi*"}))

Dabei werden jedoch Schüler, die sowohl Punjabi als auch Urdu sprechen, doppelt gezählt. Schüler 1 und Schüler 3 im obigen Beispiel werden also doppelt gezählt ...

Ich habe den ganzen Nachmittag damit herumgebrütet, wie ich es hinbekomme, die Zelle nur EINMAL zu zählen, wenn sie ENTWEDER Urdu ODER Punjabi enthält ...

Kann mir jemand sagen, wo ich einen Fehler gemacht habe?

Danke!

Antwort1

Sie können eine ZÄHLENWENNS-Funktion subtrahieren, bei der beide vorhanden sind:

=SUM(COUNTIFS(B2:B6, {"*Urdu*","*Punjabi*"}))-COUNTIFS(B2:B6,"*Urdu*",B2:B6,"*Punjabi*")

Bildbeschreibung hier eingeben

Oder verwenden Sie SUMPRODUCT, das prüft, ob sich eines von beiden in der Zelle befindet und es nur als 1 statt als 2 zählt:

=SUMPRODUCT(--((ISNUMBER(SEARCH("Urdu",B2:B6)))+(ISNUMBER(SEARCH("Punjabi",B2:B6)))>0))

Dadurch werden zwei Arrays mit 1 und 0 erstellt und dann addiert. Wenn eine der Zeilen im addierten Array größer als 0 ist, wird 1 zurückgegeben.

Bildbeschreibung hier eingeben

verwandte Informationen