Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1200to1204
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zählenwenn optimiert

Zählenwenn optimiert
Sandra
Hallo zusammenm
die Funktion "Zählenwenn" nutze ich häufig. Allerdings würde ich dies gerne optimieren. Ich schilder mal kurz meinen Problem.
Ich habe einen Bereich "K2 bis Ende variabel". Dort stehen verschiedene Bereichnamen, die sich immer wiederholen.
Jetzt würde ich gerne mit einem VBA-Code diese Bereichnamen auslesen. In die Zelle Z2, Z3, Z4 usw. soll der jeweilige Bereichname (einmal) hinterlegt werden. Und die Spalte AA dann die betreffende Anzahl. Also eigentlich das, was man selbst händisch macht.
Hat jemand so einen Code selbst schon einmal gemacht oder könnt mir jemand helfen? Habe von VBA keine große Ahnung. Kann auch ein neues Blatt sein.
Vielen lieben Dank!
Sandra

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zählenwenn optimiert
18.02.2011 15:30:42
Sandra
Hallo,
hier liegt wohl ein Mißverständnis vor. Ich will ja die Namen zählen, dh. ich habe nur eine Spalte die ich auswerten will.
Beispiel
Köln
München
Hamburg
Köln
Auswertung
Köln 2
München 1
Hamburg 1
Oder ich habe es nicht verstanden.
Liebe Grüße
Sandra
AW: Zählenwenn optimiert
18.02.2011 15:34:36
Sandra
Ah, ich habe es geschnaggelt. Da sind zwei Auswertungen auf einmal drin.

Sub Spezialfilter_ohne_Duplikate()
'Namen in A2:A65536
'Zahlen in B2:B65536
'Spalte C frei
'Überschrift in A1 "Namen"
'Überschrift in B1
Dim Dic_Zaehlen
Dim Dic_Summe
Dim Arr
Dim L As Long
Set Dic_Zaehlen = CreateObject("Scripting.Dictionary")
Set Dic_Summe = CreateObject("Scripting.Dictionary")
Dic_Zaehlen("Namen") = "'=Zählenwenn()"
Dic_Summe("Namen") = "'=Summewenn()"
Arr = Range("A1").CurrentRegion
For L = 2 To UBound(Arr)
Dic_Zaehlen(Arr(L, 1)) = Dic_Zaehlen(Arr(L, 1)) + 1 'Das Item um 1 hochzählen
Dic_Summe(Arr(L, 1)) = Dic_Summe(Arr(L, 1)) + Arr(L, 2) 'Den Wert in B zu dem Item  _
dazuaddieren.
Next
'Ausgabe in D:F
Range("D1").Resize(Dic_Zaehlen.Count) = WorksheetFunction.Transpose(Dic_Zaehlen.keys)
Range("E1").Resize(Dic_Zaehlen.Count) = WorksheetFunction.Transpose(Dic_Zaehlen.Items)
Range("F1").Resize(Dic_Zaehlen.Count) = WorksheetFunction.Transpose(Dic_Summe.Items)
End Sub

Wie müsste es denn lauten, wenn ich nur Zählenwenn haben wollte? Ich verstehe das MAkro nicht.
Und vor allem ginge es so, dass ich den auszuwertenden Bereich und auch dort wo es dann hingeschrieben wird, leicht ändern kann?
Ichverstehe nur Bahnhof. :-(
Liebe Grüße und danke schön!
Sandra
Anzeige
Habs selbst geschafft. :-) Danke für das Makro!
18.02.2011 15:37:34
Sandra

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige