ich habe eine Liste mit Namen. Die Formel soll mir anzeigen, wie oft ein Name vorkommt.
Müller ist 6 mal vorhanden
Meier 20 mal usw
Habt ihr eine Idee?
Danke Matthias
Public Sub WieOft()
Dim myDict As Object
Dim WkSh As Worksheet
Dim lLetzte As Long
Dim vTemp As Variant
Dim iIndx As Integer
Dim rZelle As Range
Set myDict = CreateObject("Scripting.Dictionary")
Set WkSh = ThisWorkbook.Worksheets("Tabelle1") ' den Tabellenblattnamen ggf. anpassen!
lLetzte = WkSh.Cells(Rows.Count, 1).End(xlUp).Row
' die Eingabe-Werte in ein Array speichern
vTemp = WkSh.Range("A1:A" & lLetzte)
' den Array abarbeiten
For iIndx = LBound(vTemp) To UBound(vTemp)
If vTemp(iIndx, 1) "" Then ' ist die Zelle gefüllt?
' in's Dictionary übernehmen und zählen
myDict(vTemp(iIndx, 1)) = myDict(vTemp(iIndx, 1)) + 1
End If
Next iIndx
' ausgeben der per Dictionary gesammelten Daten
Set WkSh = ThisWorkbook.Worksheets("Tabelle2") ' den Tabellenblattnamen ggf. anpassen!
WkSh.Range("A1:A" & lLetzte).ClearContents ' den Ausgabe-Bereich leeren/löschen
Set rZelle = WkSh.Range("A1") ' den Ausgabe-Bereich festlegen
rZelle.Resize(myDict.Count) = WorksheetFunction.Transpose(myDict.Keys)
rZelle.Offset(0, 1).Resize(myDict.Count) = WorksheetFunction.Transpose(myDict.Items)
' sortieren der Anzahl Vorkommen nach Vorkommen, Namen
WkSh.Range("A1:B" & WkSh.Cells(Rows.Count, 1).End(xlUp).Row).Sort _
Key1:=WkSh.Range("B1"), Order1:=xlDescending, _
Key2:=WkSh.Range("A1"), Order2:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal
End Sub
Arbeitsblatt mit dem Namen 'Tabelle2' | ||
A | B | |
3 | Name/Zahl | Zähler |
4 | 56 | 1 |
5 | Müller | 1 |
6 | AAAA | 1 |
7 | 4711 | 1 |
8 | Huber | 1 |
9 | A | 1 |
10 | ABCD | 1 |
11 | 4711 | 2 |
12 | Müller | 2 |
13 | 999 | 1 |
14 | A | 2 |
15 | 16.11.1949 | 1 |
16 | BA | 1 |
17 | 16.11.1949 | 2 |
18 | 999 | 2 |
19 | 999 | 3 |
Zelle | Formel |
B4 | =ZÄHLENWENN($A$4:A4;A4) |
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg |