Microsoft Excel

Herbers Excel/VBA-Archiv

Zählen, Mehrfachwerte nur einfach zählen

Betrifft: Zählen, Mehrfachwerte nur einfach zählen von: Ronny
Geschrieben am: 29.10.2020 09:36:25

Hallo Zusammen,

ich habe ein spezielles Problem.

Und Zwar möchte ich in Mehreren Bereichen, aktuell 6 Bereiche, die Anzahl der Zellen zählen welche Werte enthalten. Doppelte oder Mehrfache, sollen dabei jedoch nur einmal gezählt werden.

Habe Diese Formel

=SUMME(WENN(C4:C23<>"";1/ZÄHLENWENN(C4:C23;C4:C23)))

hier bereits in nutzen, welche auch für einen Bereich funktioniert. Jedoch habe ich keine Idee wie ich die Formel auf mehrere nicht zusammenhängende Bereiche erweitern kann.

=SUMME(WENN(C4:C23<>"";1/ZÄHLENWENN(C4:C23;C4:C23)))+SUMME(WENN(I4:I23<>"";1/ZÄHLENWENN(I4:I23; I4:I23)))+SUMME(WENN(O4:O23<>"";1/ZÄHLENWENN(O4:O23;O4:O23)))+SUMME(WENN(C26:C45<>""; 1/ZÄHLENWENN(C26:C45;C26:C45)))+SUMME(WENN(I26:I45<>"";1/ZÄHLENWENN(I26:I45;I26:I45))) +SUMME(WENN(O26:O45<>"";1/ZÄHLENWENN(O26:O45;O26:O45)))

Diese Variante geht nicht weil er dann Mehrfache in den einzelnen Bereichen nicht mehrfach zählt, aber aus den anderen Bereichen dazu zählt.

Ich hoffe ich habe mich verständlich ausgedrückt.

MfG

Ronny

Betrifft: AW: (D)eine Beispieldatei wäre hilfreich owT
von: neopa C
Geschrieben am: 29.10.2020 09:41:22

Gruß Werner
.. , - ...

Betrifft: AW: Zählen, Mehrfachwerte nur einfach zählen
von: Ronny
Geschrieben am: 29.10.2020 09:47:01

https://www.herber.de/bbs/user/141162.xlsx

hier mal die Beispieldatei

Betrifft: AW: eine kleine AGGREGAT()-Fomel reicht ...
von: neopa C
Geschrieben am: 29.10.2020 10:14:23

Hallo Ronny,

... in Deinem Fall in z.B. X3: =WENNFEHLER(AGGREGAT(15;6;C$4:O$23/(C$4:O$23>X2)/(C$3:O$3="Nr.");1);"")

und Formel ziehend weit genug nach unten kopieren.

Gruß Werner
.. , - ...

Betrifft: AW: eine kleine AGGREGAT()-Fomel reicht ...
von: Ronny
Geschrieben am: 29.10.2020 10:44:49

Hallo neopa C

Kann diese Formel jetzt leider aktuell gar nicht verstehen was du meinst mit ziehend nach unten ziehen?

in Mustertabelle sieht man ja die Spalte in der "Nr." steht hier sollen quasi für den ganzen Tag alle Numnmern gezählt werden aber eben mehrfache nur einmal.

kann deine Formel leider nicht verstehen :(

Betrifft: AW: nun ...
von: neopa C
Geschrieben am: 29.10.2020 11:09:00

Hallo Ronny,

... meine Formel wertet Deine Zahlenwerte in C4:C23, I4:I23 und O4:O23 aus und listet daraus alle ohne Duplikate aus. Ich weiß ja nicht wo, Du das Ergebnislisting haben möchtest. Ich hab deswegen einfach nur die Spalte X genutzt. In der Zelle oberhalb der (ersten) Formel sollte lediglich kein Text oder keine Zahl größer 0 stehen. Die Formel kopierst Du dann nach unten.

Gruß Werner
.. , - ...

Betrifft: AW: nun ...
von: Ronny
Geschrieben am: 29.10.2020 11:49:04

Super jetzt habe ich das schon mal verstanden. und funktionert auch super.

Wenn ich jedoch für den unteren Teil der Tabelle ändere kommen falsche werte raus.

der untere Teil wäre ja dann:


WENNFEHLER(AGGREGAT(15;6;C$26:O$45/(C$26:O$45>Z3)/(C$25:O$25="Nr.");1);"")

oder liege ich hier falsch?

Betrifft: AW: bitteschön und ...
von: neopa C
Geschrieben am: 29.10.2020 11:56:15

Hallo Ronny,

... möglicherweise hast Du die Formel für den unteren Teil nicht richtig eingesetzt.

Diese Formel müsste so wie Du sie definiert hast, in Z4 eingesetzt werden und Z3 sollte leer sein. Oder Du änderst in der Formel Z3 zu Z2 um dann kannst Du sie auch in Z3 einsetzen.

Gruß Werner
.. , - ...

Betrifft: AW: bitteschön und ...
von: Ronny
Geschrieben am: 29.10.2020 12:05:05

Ja das hab ich verstanden und steht auch dort drin.

aber er zeigt mir jetzt eigentlich einfach alle Werte im Unteren Teil der Tabelle an. Auch die einzelnen. und ich habe beide Formeln schon mehrfach verglichen jetzt

Ich werd verrückt ^^

LG

Betrifft: AW: deie beiden Formeln zu einer vereinen ...
von: neopa C
Geschrieben am: 29.10.2020 12:35:03

Hallo Ronny,

... wenn Du sowohl den oberen und unteren Teil Deiner Liste auswerten willst, dann einfach z.B. in Y3:

=WENNFEHLER(AGGREGAT(15;6;C$4:O$45/(C$4:O$45>Y2)/(C$3:O$3="Nr.");1);"")

und nach unten kopieren.

Gruß Werner
.. , - ...

Betrifft: mehrere Spalten funktioniert genau so
von: WF
Geschrieben am: 29.10.2020 09:51:43

Hi,

z.B.
=SUMME(WENN(C4:O23<>"";1/ZÄHLENWENN(C4:O23;C4:O23)))

ABER
die Spalten müssen zusammenhängen / nebeneinander liegen.

nur C4:C23 und M4:M23
funktioniert nicht

da müsstest Du Hilfsspalten anlegen.
WF

Betrifft: AW: mehrere Spalten funktioniert genau so
von: Ronny
Geschrieben am: 29.10.2020 10:47:36

Hallo WF,

ja das mehrere nicht zusammenhängende Spalten nicht gehen habe ich gemerkt und das ist das Problem mit Hilfsspalten wüsste ich auch nicht wie ich es machen könnte.

Da quasi alle Bereiche gezählt werden sollen, aber aus allen Bereichen Mehrfachwerte nur einmal gezählt werden sollen#

LG

Betrifft: mit Hilfsspalten ist es kinderleicht
von: WF
Geschrieben am: 29.10.2020 13:34:38

Hi,

ab AA4 runter stehen die Einträge ab c4; ab AB4 die Einträge ab i4; ab AC4 die ab o4; ab AD4 die ab c26; ab AE4 die ab i26 und ab AF4 die ab o26

das Ergebnis ist dann:
{=SUMME(WENN(AA4:AF30<>"";1/ZÄHLENWENN(AA4:AF30;AA4:AF30)))}

dito ohne Array-Abschluss
=SUMMENPRODUKT((AA4:AF30<>"")/ZÄHLENWENN(AA4:AF30;AA4:AF30&""))

ergibt in Deinem Beispiel 23

Salut WF

Betrifft: AW: Zählen, Mehrfachwerte nur einfach zählen
von: Daniel
Geschrieben am: 29.10.2020 11:23:09

Hi

wenn Ganzzahlen gezählt werden sollen, probier mal diese Formel:
=SUMMENPRODUKT((HÄUFIGKEIT((C4:C23;I4:I23;O4:O23;C26:C45;I26:I45;O26:O45);ZEILE(A1:A999))>0)*1) 

der Zellbereich bei Zeile(A1:A999) richtet sich nach der kleinsten (von) und größten (bis) Zahl die gezählt werden soll.

Wenn auch Texte (Namen) gezählt werden sollen und VBA eine Option ist, könnte eine kleine selbstgeschriebene Funktion helfen.
Mittel der Wahl wäre das Dictionary-Objekt.

hierzu dieser Code im Modul1:
Function Z?hlenOhneDuplikate(ParamArray Bereiche()) As Long
Dim B, Z, dic

Set dic = CreateObject("scripting.dictionary")

For Each B In Bereiche
    For Each Z In B
        If Z <> "" Then dic(Str(Z)) = 0
    Next
Next
Debug.Print Join(dic.keys)
Z?hlenOhneDuplikate = dic.Count
End Function

und diese Formel zum Auswerten.
=ZählenOhneDuplikate(C4:C23;I4:I23;O4:O23;O26:O45;I26:I45;C26:C45)

Gruß Daniel

Betrifft: AW: Zählen, Mehrfachwerte nur einfach zählen
von: Ronny
Geschrieben am: 29.10.2020 12:09:58

Hallo Daniel,

ich glaube deine Erste Variante ist genau das was ich gesucht habe. und scheint wenn ich das jetzt gerade mal so probiert habe auch genau zu funktionieren.

Ich danke Dir.

Aber ich danke auch den Anderen für eure Hilfe.

LG

Dieses Forum ist eh Mega geil, ihr glaubt gar nicht wie oft ich hier anhand von Beiträgen Probleme lösen konnte und mein Wissen erweitern.

Beiträge aus dem Excel-Forum zum Thema "Zählen, Mehrfachwerte nur einfach zählen"