ich hab hier ein Problem mit ZÄHLENWENN() bzw. mit der Ermittlung unterschiedlicher Werte in einem diskontinuierlichen Bereich.
Für einen kontinuierlichen Bereich (z.B. A1:B10) kann man die Anzahl der unterschiedlichen Werte mit folgender MATRIX-Funktion ermitteln :
{=SUMME(WENN(A1:B10="";0;1/ZÄHLENWENN(A1:B10;A1: B10)))}
Definiert man für einen kontinuierlichen Bereich einen Namen (z.B. "Bereich1"), so funktioniert das entsprechend :
{=SUMME(WENN(Bereich1="";0;1/ZÄHLENWENN(Bereich1;Bereich1)))}
Sobald der Bereich jedoch diskontinuierlich ist (also aus zusammenhanglosen Bereichen besteht oder aus einer unterschiedlichen Anzahl Zeilen/Spalten, so dass sich bei Markierung kein rechteckiger Bereich ergibt, dann funktioniert dieses Konstrukt nicht mehr :-(
Hier zwei Beispiele : Bereich1 ist kontinuierlich (orange markiert), Bereich2 ist diskontinuierlich (blauer Bereich in Spalten D:E).
Für Bereich2 hätte ich gerne das Ergebnis 5, da im blauen Bereich 5 unterschiedliche Werte stehen !
A | B | C | D | E | |
1 | |||||
2 | |||||
3 | |||||
4 | |||||
5 | |||||
6 | |||||
7 | |||||
8 | |||||
9 | |||||
10 | |||||
11 | |||||
12 |
MATRIX-Funktionen (mit Strg+Shift+ENTER bestätigen)
Zelle | Formel |
---|---|
B4 | {=SUMME(WENN(Bereich1="";0;1/ZÄHLENWENN(Bereich1;Bereich1))) |
D4 | {=SUMME(WENN(Bereich2="";0;1/ZÄHLENWENN(Bereich2;Bereich2))) |
Die Funktion in D4 ergibt leider den Fehlerwert #WERT!
Ich habe auf folgender Seite bereits einen Lösungsansatz per INDIREKT() gefunden :
http://www.excelformeln.de/formeln.html?welcher=359
aber :
1.) ist mir INDIREKT() zu starr (der Bereich sollte flexibel sein - je nach Definition des Namens Bereich2 )
2.) muss die Lösung noch in das Konstrukt SUMME(WENN(..;ZÄHLENWENN(...))) - oder ähnliches - eingebaut werden, um die Anzahl unterschieldlicher Werte zu zählen
Ich möchte übrigens keine VBA-Lösung (die könnte ich mir auch selbst basteln ;-), sondern eine Lösung auf Basis von Formeln/Funktionen !
Danke für eure Hilfe,
Gruß NoNet