COUNTIF-Funktion in DAX?

Es gibt keine Funktion COUNTIF() in DAX.

Das, was Du vorhast, geht also nicht. Ende.
Nein, natürlich nur Spaß 🙂

Zwar verfügt DAX tatsächlich nicht über eine Funktion, die der Excel-Funktion COUNTIF (oder im deutschen Excel: ZAEHLENWENN) entspricht, man kann sie sich aber sehr leicht in DAX nachbauen.

Das Beispiel-Problem

Nehmen wir an, Du planst, einen Kurs in Power BI zu geben.
Du hast an 25 Leute eine Einladung geschickt und diese haben nun entweder mit Ja geantwortet, wenn sie teilnehmen möchten oder mit Nein, wenn sie nicht kommen.

Nun hast Du diese 25 Vorgänge in eine Tabelle „Anmeldungen_Fact“ geschrieben und in der Spalte „Anmeldung“ steht entweder „Ja“ oder „Nein“.

Die Beispieltabelle. Wir wollen nun die Zeilen zählen, die ein Ja enthalten

Jetzt wollen wir die Zeilen zählen, in denen die Spalte „Anmeldung“ „Ja“ enthält.
Vielleicht kennst Du es aus Excel: hier würdest Du vermutlich die Funktion ZÄHLENWENN bzw. im englischen COUNTIF verwenden und das Problem sehr einfach lösen.

Jetzt könntest Du auf die Idee kommen, auch in DAX einfach die Funktion COUNTIF zu suchen, mir erging es zumindest zunächst so.

Nur: die Funktion COUNTIF existiert in DAX nicht – und man braucht sie auch nicht.

Die Lösung

… oder zumindest EINE Lösung. Es gibt wie immer viele Wege, die ans Ziel führen, aber das ist die Naheliegenste:

Wir können zur Lösung des Problems die Funktion COUNTROWS verwenden.
Die Funktion COUNTROWS zählt, wie der Name sagt, die Zeilen einer Tabelle.

Als einzigen Parameter erwartet die Funktion COUNTROWS den Namen einer Tabelle.

Wenn wir nun also die Funktion COUNTROWS mit dem Parameter Anmeldungen_Fact aufrufen, erhalten wir das Ergebnis 25, also alle Zeilen der Tabelle.

Der Clou ist nun, dass wir die Tabelle zunächst noch filtern – und zwar nach der Spalte Anmeldung, wenn dort ein Ja eingetragen ist.

Das sieht dann folgendermaßen aus:

Anzahl Anmeldungen = 
COUNTROWS (
    FILTER (
        Anmeldungen_Fact,
        Anmeldungen_Fact[Anmeldung] = "Ja"
    )
)

Die Funktion COUNTROWS erwartet als Parameter eine Tabelle und die Funktion FILTER liefert als Rückgabewert eine Tabelle – passt also.
Die Funktion Filter erwartet zwei Parameter: die zu filternde Tabelle (Anmeldungen_Fact) und den Filterausdruck.

Mit (sehr wenig) DAX-Code haben wir uns die COUNTIF-Funktion selber gebaut.

0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert