Schau dir mal die Seite
http://www.excelformeln.de an. Habe dort folgende Lösung gefunden
Einträge in gefilterter Liste ohne Duplikate zählen * (339)
Aufgabe
Eine Liste ist nach irgendeiner Spalte gefiltert.
Nun sollen die sichtbaren Einträge einer Spalte ohne Duplikate gezählt werden
Lösung
Die Einträge, die gezählt werden sollen, stehen in Spalte B
{=SUMME((VERGLEICH(WENN(TEILERGEBNIS(3;INDIREKT(„B“&ZEILE(2:100)));B2:B100);WENN(TEILERGEBNIS(3;INDIREKT(„B“&ZEILE(2:100)));B2:B100);0)=ZEILE(1:99))*(WENN(TEILERGEBNIS(3;INDIREKT(„B“&ZEILE(2:100)));A2:A100)FALSCH))}
Handelt es sich in Spalte B nur um Zahlen, funktioniert’s ohne Array mit:
=SUMME((HÄUFIGKEIT(TEILERGEBNIS(3;INDIREKT(„A“&ZEILE(2:100)))*(B2:B100);TEILERGEBNIS(3;INDIREKT(„A“&ZEILE(2:100)))*(B2:B100))>0)*1)-1
Akzeptiert auch mehrere Spalten (B2:E100)
Kürzer und zudem unabhängig von Text/Zahl - von Franz Pölt (09.11.2010):
=SUMME(N(HÄUFIGKEIT(ZEILE(1:117);TEILERGEBNIS(3;INDIREKT(„B“&ZEILE(2:100)))*VERGLEICH(B2:B100&"";B2:B100&""
)>0))-1
Unbedingt darauf achten, dass ZEILE solo ein Zähler ist - also mit 1 beginnen muss - bis wohin ist egal.
Ist das Filterkriterium bekannt und ändert sich nicht laufend, wird’s nochmal kürzer, wenn man es in die Formel schreibt, z.B. für das Filterkriterium „x“:
{=RUNDEN(SUMME(WENN((B1:B100="")+(A1:A100"x");0;1/ZÄHLENWENN(B1:B100;B1:B100)));0)}
Und unabhängig von Text