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