Microsoft Excel

Herbers Excel/VBA-Archiv

Namen in eienr Liste zählen | Herbers Excel-Forum


Betrifft: Namen in eienr Liste zählen von: Matthias
Geschrieben am: 20.01.2012 15:15:10

Hallo Forum,

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

  

Betrifft: AW: Namen in eienr Liste zählen von: fcs
Geschrieben am: 20.01.2012 15:28:34

Hallo Matthias,

wenn du alle Name-Anzahlen in einer Liste haben willst, dann erstellen einen Pivottabellenbericht auf Basis der Daten. 1. Zeile muss dann jedoch Spaltentitel oberhalb der Namen haben.

Wenn du jeweils die Zahl für einen Namen haben willst, dann mit Funktion ZÄHLENWENN und einer Eingabezelle für den gesuchten Namen.

Weitere Möglichkeit für einzelne Namen. Autofilter einrichten und Formel mit Funktion TEILERGEBNIS einrichten, dann Filter auf gewünschten Namen setzen.

Gruß
Franz


  

Betrifft: AW: Namen in eienr Liste zählen von: Matthias
Geschrieben am: 20.01.2012 15:32:20

ok, ich probiere es mal aus.
Schonmal Danke!!!!


  

Betrifft: AW: Namen in eienr Liste zählen von: Peter Feustel
Geschrieben am: 20.01.2012 15:33:57

Hallo Matthias,

vielleicht so:
'
' Ich habe eine Tabelle mit ein paar tausend Zeilen.
' Sagen wir in A steht ein Name und in B eine Tätigkeit.
'
' Franz Müller test
' Heidi Muster bla
' Klaus Maler test
' Franz Müller test
'
' Der gute Franz kommt jetzt zweimal vor, und ich möchte ein Makro schreiben, das
' mir auf einer Seite Zusammenfassung aufzählt, wie oft Franz in der Spalte vorkommt.
'

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

Gruß Peter


  

Betrifft: AW: Namen in eienr Liste zählen von: Wilfried Höttl
Geschrieben am: 21.01.2012 10:23:27

Hallo!

Der jeweils erste Eintrag erhält den Zähler "1", alle übrigen (doppelten) eine Zahl größer 1.
mit Filter A/Z größer 1 löschen

Arbeitsblatt mit dem Namen 'Tabelle2'
 AB
3Name/ZahlZähler
4561
5Müller1
6AAAA1
747111
8Huber1
9A1
10ABCD1
1147112
12Müller2
139991
14A2
1516.11.19491
16BA1
1716.11.19492
189992
199993

ZelleFormel
B4=ZÄHLENWENN($A$4:A4;A4)
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg




Gruß
Wilfried


Beiträge aus den Excel-Beispielen zum Thema "Namen in eienr Liste zählen"