Excel 2010 Einem Namen eine Zahl zuordnen

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

doch, diese Möglichkeit gibts.
Aber hast Du wirklich soviele Namen als Peter Müller in einer Spalte, also jeden in einer Zelle so drinstehen?
Normalerweise macht man da zumindest Müller, Peter draus oder man verteilt sie auf 2 Spalten.
Egal, wie, so wirds einfacher.
Steht der Name in Sp. A und soll die Nummer nach B, (ab Z.2! erste kann Überschriften enthalten oder leer sein!) heißt die Formel in B2:

=Wenn(Zählenwenn(A$1:A1;A2)=0;Max(B$1:B1)+1;Index(B$1:B1;Vergleich(A2;A$1:A1;0)))

diese Formel runterkopieren, dann ganze Spalte kopieren und nur als WERTE wieder einfügen. Damit sind die Nummern fest zugeordnet.
Zur Erklärung:
Kommt der Name oberhalb von zB. A6 noch nicht vor, wird ihm die nächste Nr.(=Max+1) zugeordnet.
kommt er vor, wird sein erster Eintrag in A im aufgespannten Bereich (zB: A$1:A5) von Vergleich gefunden, zB in der 3.Zelle=A3.
Index(B$1:B5;...);Zeile=>3;Spalte1des Bereichs B$1:B5) gibt die Nummer von dort wieder.

Iamiam  30.07.2012, 15:36

danke für den Stern!
Noch eins: Es könnte sein, dass xl ab 10000 Einträgen schlapp macht
(hatte mal so ein Phänomen in einem Makro, als die Zahl meiner Einträge 10000 überstieg)
dann musst Du kurz vorher aufhören, woanders hinkopieren und die Liste sortieren.
Mit =A(n-1)=An oder =B(n-1)=Bn in einer anderen Spalte erkennst Du Doppel. Zu Wert umsetzen und sortieren, dann alle 1 rauslöschen (das sind die Doppel) und das Zeilen-reduzierte Ergebnis wieder vor die restliche Liste setzen.
Je nach Anzahl der Doppel vorher kannst du dann noch recht weit kommen.
(ist vllt aber gar nicht nötig, ich erwähne nur die Möglichkeit, falls es doch auftritt)

0

Könnte dir folgendes anbieten, allerdings ZÄHLT das die Anzahl von jedem und zeigt dir dann an, wie oft jedes vorkommt; Kann dir auch noch eines anbieten, dass alle doppelten rot färbt (erstes ist nicht dabei, also ab den 2ten alles rot) falls dir das lieber ist. Hoffe ich konnte helfen (P.S. du musst den Zellennamen umändern [bei mir ists der name CSED_KSTL, kannste ja nach belieben umändern])

Sub Filtermöglichkeiten()
   Dim objDic            As Object
   Dim letzteZelle       As Range
   Dim Bereich           As Range
   Dim zelle             As Range

   With Worksheets(1)
      Set letzteZelle = .Range("CSED_KSTL").End(xlDown)
      Set Bereich = Range(.Range("CSED_KSTL").Offset(1), letzteZelle)
      Set objDic = CreateObject("Scripting.Dictionary")

      For Each zelle In Bereich
         If Not objDic.Exists(zelle.Value) Then
            objDic.Add zelle.Value, 1
         Else
            objDic.Item(zelle.Value) = _
                  objDic.Item(zelle.Value) + 1
         End If
      Next
   End With

   Worksheets(2).Activate
   Worksheets(2).Range("A1").Resize(objDic.Count, 1) = WorksheetFunction.Transpose(objDic.keys)
   Worksheets(2).Range("B1").Resize(objDic.Count, 1) = WorksheetFunction.Transpose(objDic.items)
End Sub

Das geht mit dem "Sverweis", da musst du aber eine LIste machen, mit allen Namen, die in der Tabelle erhalten sind und jeweils zuornen, welche Zahl das hat. Fúr den Rest kann Ecxel das dann automatisch

ShinTwo 
Fragesteller
 23.07.2012, 14:56

Es sind wie gesagt über 2k User... gibt es nicht eine Möglichkeit die Zahlen automatisch zu zuordnen?

0