AW: Anzahl gleicher Begriffe im Array
11.05.2022 16:24:43
Daniel
Hi
ein Dictionary ist im Prinzip ein eindimensionales Array mit einem Freitext-Index.
dh man muss sich nicht darum kümmern, wieviele Indizes das Array braucht sondern kann einfach einen Text als Index einsetzen.
ist der Datenpunkt nicht vorhanden, wird er neu angelegt, ist er vorhanden, wird dieser verwendet, dh innerhalb dieser Indizes herrscht immer Eindeutigkeit.
die Einfachste Anwendung wäre die Programmierung eines ZählenWenns über alle Elemente, ähnlich einer Pivot-Auswertung, hier mal ein Beispiel für Spalte A
dim dic as Dictionary
dim Zelle as Range
set dic = Createobject("Scripting.Dictionary")
For Each Zelle in Cells(1, 1).CurrentRegion.Columns(1)
dic(Zelle.Value) = dic(Zelle.Value)
next
Cells(1, 2).Resize(dic.Count) = Worksheetfunction.Transpose(dic.Keys)
Cells(1, 3).Resize(dic.Count) = Worksheetfunction.Transpose(dic.Items)
der andere von mir beschriebene Weg würde so aussehen:
Columns(1).Copy Destination:=Cells(1, 2)
Columns(2).RemoveDuplicates 1, xlno
with Range(Cells(1, 3), Cells(Rows.count, 3).end(xlup)
.FormulaR1C1 = "=CountIf(C1,RC2)"
.Formula = .value
End with
das erste spricht halt mehr den Programmierer an, das zweite den Excelanwender
Gruß Daniel