Häufigkeit verschiedener Namen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Label


Excel-Version: 97
nach unten

Betrifft: Häufigkeit verschiedener Namen
von: Ingo J.
Geschrieben am: 08.05.2002 - 19:13:06

Hallo,

ich habe eine für mich ziemlich schwere Aufgabe und hoffe mir kann jemand helfen.Und zwar sind in meiner Tabelle, die ziemlich groß ist (99 Spalten und 2500 Zeilen), in der Spalte Y mehrere verschiedene Namen. Nun möchte ich das daneben,also in Spalte CV, die Namen aufgelistes werden (jeweils einmal)und daneben wie oft diese in der Tabelle vorkommen. Damit ich dann ein Diagramm daraus bilden kann. Eine Makrolösung wäre mir hier am liebsten.
Ich hoffe es findet sich jemand der mir helfen kann.

Im voraus schon mal Danke


nach oben   nach unten

Re: Häufigkeit verschiedener Namen
von: th.heinrich
Geschrieben am: 09.05.2002 - 01:02:44

hallo Ingo,

werde aus Deinem posting nicht schlau.

>>in der Spalte Y mehrere verschiedene Namen. Nun möchte ich das daneben,also in Spalte CV, die Namen aufgelistes werden (jeweils einmal)und daneben wie oft diese in der Tabelle vorkommen. >>

nach welchen KRITERIEN sollen die namen aufgelistet werden ?

kannst Du einen auszug aus Deiner tabelle posten.

gruss thomas


nach oben   nach unten

Re: Häufigkeit verschiedener Namen
von: Ingo J.
Geschrieben am: 09.05.2002 - 07:25:03

Hallo Thomas,

hier ein Beispiel

Spalte_A-X|Spalte_Y|Spalte _Z-CU|Spalte_CV|Spalte_CW
div Daten_|_Holger_|_div. Daten_|_leer____|_leer
div Daten_|_Jens___|_div. Daten_|_leer____|_leer
div Daten_|_Holger_|_div. Daten_|_leer____|_leer
div Daten_|_Holger_|_div. Daten_|_leer____|_leer
div Daten_|_Ralf___|_div. Daten_|_leer____|_leer
div Daten_|_Claudia|_div. Daten_|_leer____|_leer
div Daten_|_Jens___|_div. Daten_|_leer____|_leer

so ungefähr sieht die tabelle aus, nur sind es noch mehr Namen ca. 50 und die Tabelle weiterzuführen würde hier den Rahmen sprengen.
So und nun möchte ich das es zum schluss wie folgt aussieht:

Spalte_A-X|Spalte_Y|Spalte _Z-CU|Spalte_CV|Spalte_CW
div Daten_|_Holger_|_div. Daten_|_Holger__|_3
div Daten_|_Jens___|_div. Daten_|_Jens____|_2
div Daten_|_Holger_|_div. Daten_|_Ralf____|_1
div Daten_|_Holger_|_div. Daten_|_Claudia_|_1
div Daten_|_Ralf___|_div. Daten_|_leer____|_leer
div Daten_|_Claudia|_div. Daten_|_leer____|_leer
div Daten_|_Jens___|_div. Daten_|_leer____|_leer

Wobei die Reihenfolge der Namen keine Rolle spielt.
Ich hoffe es ist jetzt etwas eindeutiger dargestellt und Du kannst mir weiter helfen.

Ingo


nach oben   nach unten

Re: Häufigkeit verschiedener Namen
von: Berai
Geschrieben am: 09.05.2002 - 07:55:07

Hallo Ingo,

hier ein Beispiel, bei dem Du die Formeln an Deine Bereiche anpassen mußt.

MS Excel von Berai an Ingo J.
 ABC
1alle_Namenohne_DopplerAnzahl
2Name5Name52
3Name4Name45
4Name6Name61
5Name3Name32
6Name1Name13
7Name8Name81
8Name7Name73
9Name2Name22
10Name1 
11Name1 
12Name4 
13Name7 
14Name5 
15Name2 
16Name4 
17Name4 
18Name3 
19Name7 
20Name9Name91
21Name4 


Formel in CV2:
=WENN(ZÄHLENWENN(Y$2:Y2;Y2)>1;"";Y2)

Formel in CW2:
=WENN(CV2="";"";ZÄHLENWENN(Y2:Y21;CV2))

Beide Formeln nach unten kopieren.

Gruß
Berai

nach oben   nach unten

Re: Häufigkeit verschiedener Namen
von: Berai
Geschrieben am: 09.05.2002 - 08:00:53

Hallo Ingo,

leider wurden die Spaltenköpfe im Beispiel nicht richtig ausgegeben, in den Formeln habe ich aber die Spalten entsprechend Deiner Fragestellung benutzt.
A entspricht Y
B entspricht CV
C entspricht CW

Gruß
Berai


nach oben   nach unten

Re: Häufigkeit verschiedener Namen
von: WernerB.
Geschrieben am: 09.05.2002 - 09:15:27

Hallo Ingo,

ist es Dir so genehm:

Ich bin davon ausgegangen, dass in der Zeile 1 Spaltenüberschriften stehen; widrigenfalls muss eine Makroanpassung erfolgen.

Viel Erfolg wünscht
WernerB.

nach oben   nach unten

Re: Häufigkeit verschiedener Namen
von: Ingo J.
Geschrieben am: 09.05.2002 - 17:14:16

Hi Berai,

Danke für deine Formeln, aber das hatte ich auch schon ausprobiert. Diese Methode ist nur nicht mehr machbar bei der Tabelle die ich habe, wie schon geschrieben bei ca. 2500 Zeilen und über 50 Namen.

Aber danke für Deine Bemühung

gruss Ingo


nach oben   nach unten

Re: Häufigkeit verschiedener Namen
von: Ingo J.
Geschrieben am: 09.05.2002 - 17:23:43

Hi WernerB.,

die Formel ist vom Ergebnis, so wie ich es mir vorgestellt habe. Danke !
Nur habe ich noch eine Frage.
Bei meiner Tabelle hat es ca. 15 Minuten gedauert bis das Makro alle Daten erfasst hat. Gibt es eine Möglichkeit dieses etwas zu beschleunigen. Wie gesagt das Ergebnis war in Ordnung.

Gruss ingo


nach oben   nach unten

Re: Häufigkeit verschiedener Namen
von: WernerB.
Geschrieben am: 09.05.2002 - 19:25:58

Hallo Ingo,

mit einem anderen Lösungsansatz konnte ich eine jetzt (hoffentlich) annehmbare Laufzeit erreichen.
Du musst allerdings dabei in Kauf nehmen, dass die Namen in Spalte CV alphabetisch sortiert sind.

Viel Erfolg wünscht
WernerB.

nach oben   nach unten

Re: Häufigkeit verschiedener Namen
von: th.heinrich
Geschrieben am: 09.05.2002 - 19:26:28

tag Ingo,

neuer vorschlag mittels hilfspalte. ordne jedem der ca. 50 namen in einer zusaetzlichen spalte eine zahl zu.
weiter wie folgt.


MS Excel von th.heinrich an Ingo J.
 ABCDEFG
1namehilfsspalteergebnisarrayformelfuerC2:C7
2holger13={HÄUFIGKEIT(B2:B7;B2:B7)}  
3holger10={HÄUFIGKEIT(B2:B7;B2:B7)}  
4holger10={HÄUFIGKEIT(B2:B7;B2:B7)}  
5beate22={HÄUFIGKEIT(B2:B7;B2:B7)}  
6beate20={HÄUFIGKEIT(B2:B7;B2:B7)}  
7viola31={HÄUFIGKEIT(B2:B7;B2:B7)}  

formel als ARRAY eingeben!

gruss thomas

nach oben   nach unten

Re: Häufigkeit verschiedener Namen
von: Ingo J.
Geschrieben am: 09.05.2002 - 22:33:33

Danke Thomas aber Deine Variante ist mir zu umständlich, außerdem bin ich kein Freund von ARRAY-Formeln.

Ich bin trotzdem erstaunt auf was für interesant Lösungen ich hier stoße.

Ich möchte mich schonmal bei allen bedanken die Zeit und Grips investiert haben um mir zu helfen.

Ingo


nach oben   nach unten

Häufigkeit verschiedener Namen + Diagramm
von: Ingo J.
Geschrieben am: 09.05.2002 - 22:53:55

Hallo WernerB.,

Die Formel ist ausgezeichnet, hat auch nur ne 10 sek gebraucht bis alle Werte ermittelt waren.
Kannst Du mir nochmal helfen?
Ich möchte noch das die Auswertung nicht zwische Gross und Kleinschreibung unterscheidet. Wie es in der Übersichtsspalte ( also CV) dargestellt wir ist mir dann auch egal.
Außerdem habe ich festgestellt das in einigen Zellen vor den ersten Buchstaben ein leer Zeichen ist. Auch hier wäre es gut wenn die Formel diese ignorieren würde.

Ich habe Deine Formel auch etwas erweitert und habe noch eine Frage zu dem Diagramm das erstell wird. wie kann ich unter jeden Balken den Namen schreiben lassen, zur Zeit wird nur der erste Name unter dem Diagramm geschrieben. Ich möchte aber nicht auf die farbigen Balken verzichten. Wenn ich alle Balken mit einer Datenreihe erstelle klappt es ja, aber alle Balben sind nur in einer Farbe.

Hier der jetzige Stand der Formel

Sub HaeufigkeitNamen()
Dim BlaNa As String, s As String
Dim fiR As Long, laR As Long, laRn As Long, anz As Long, i As Long
Dim x As Long
Dim y As Long
Dim o As Long
Dim z As Long
Dim summe As Variant
Application.ScreenUpdating = False
BlaNa = ActiveSheet.Name
laR = Cells(Rows.Count, 25).End(xlUp).Row
Sheets.Add
ActiveSheet.Move After:=Sheets(Sheets.Count)
Sheets(BlaNa).Range("Y2:Y" & laR).Copy
ActiveSheet.Range("Y2:Y" & laR).PasteSpecial Paste:=xlValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("Y2:Y" & laR).Sort Key1:=Range("Y2"), _
Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
fiR = 1
Do While Not i >= laR
anz = 0
For i = fiR To laR
s = Cells(fiR, 25).Value
If Cells(i, 25).Value = s Then
anz = anz + 1
Else
laRn = Cells(Rows.Count, 100).End(xlUp).Row
Cells(laRn + 1, 100).Value = s
Cells(laRn + 1, 101).Value = anz
fiR = i
Exit For
End If
Next i
If i > laR Then Exit Do
Loop
laR = Cells(Rows.Count, 100).End(xlUp).Row
ActiveSheet.Range("CV2:CW" & laR).Copy
Sheets(BlaNa).Range("CV2:CW" & laR).PasteSpecial Paste:=xlValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Application.DisplayAlerts = False
Sheets(Sheets.Count).Delete
Application.DisplayAlerts = True
Sheets(BlaNa).Select
Application.ScreenUpdating = True
Range("CV1").Select

'Bildet die Summe alles Namen
z = 2
Do Until IsEmpty(Cells(z, 101))
z = z + 1
Loop
For o = 2 To z
summe = summe + Cells(o, 101).Value
Next o
Cells(1, 100).Value = "Verantwortlich"
Cells(1, 101).Value = "Anzahl"
Cells(1, 102).Value = "Gesamt"
Cells(2, 102).Value = summe

'Diagramm wird erzeugt
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets(BlaNa).Range(Sheets(BlaNa).Cells(2, 100).Address & ":" & Sheets(BlaNa).Cells(laRn + 1, 101).Address), PlotBy _
:=xlColumns
ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowValue, LegendKey:=False
ActiveChart.HasLegend = False

x = 1
For y = 1 To laRn - 1
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(x).Values = Sheets(BlaNa).Cells(x + 1, 101)
ActiveChart.SeriesCollection(x).Name = Sheets(BlaNa).Cells(x + 1, 100)
x = x + 1
Next y

ActiveChart.Location Where:=xlLocationAsNewSheet
With ActiveChart
.HasTitle = True
.ChartTitle.Text = "Gesamtübersicht aller Verursacher bei " & summe & " Schadmeldungen"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Verursacher"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Anzahl"
End With

Sheets(BlaNa).Select
Range("A1").Select

End Sub

Im voraus nochmal Danke für die investierte Zeit

Ingo

nach oben   nach unten

Nachtrag
von: Ingo J.
Geschrieben am: 10.05.2002 - 07:27:03

Ich habe mich in dem vorigen Beitrag nicht Korrekt ausgedrückt.
Bei den einzelnen Zellen mit dem Leerzeichen vor den Namen, möchte ich natürlich nicht das der komplette Name ignoriert wird sondern nur das Leerzeichen.

Außerdem nicht wundern in der Formel ist kein Fehler in der dritten Zeile unter dem Kommentar "'Diagramm wird erzeugt". Habe die Formel nur reinkopiert und nicht aufgepasst ob es mit der Länge hinhaut.

Müsste theoretisch so aussehen

ActiveChart.SetSourceData Source:=Sheets(BlaNa).Range(Sheets(BlaNa) _
.Cells(2, 100).Address & ":" & Sheets(BlaNa).Cells(laRn + 1, 101).Address), PlotBy _
:=xlColumns


Gruss
Ingo


nach oben   nach unten

Nachtrag 2
von: Ingo J.
Geschrieben am: 10.05.2002 - 10:49:52

Hi,

habe die Lösung für mein Problem mit der Groß/Kleinschreibung und dem Leerzeichen selbst gefunden

Habe folgende Formellösung eingefügt

For a = 2 To laR
Text = Cells(a, 25).Value ' Zeichenfolge initialisieren.
Trim = LTrim(Text) ' Trim = "<-Name "
Cells(a, 25).Value = Trim
Text = Cells(a, 25).Value
Groß = UCase(Text) ' Groß = " Grossbuchstaben"
Cells(a, 25).Value = Groß
Next a

ist wahrscheinlich nicht das non plus ultra, aber es funktioniert.
Auch stimmt die Formel vom Beitrag zuvor nicht mehr, habe noch einige Punkte modifiziert.

Nun habe ich trotzdem noch das Problem mit der Balkenbeschriftung unterhalb jedes Balkens im Diagramm

Würde mich freuen wenn mir jemand bei meinen letzten Problem helfen könnte

MfG
Ingo



nach oben   nach unten

Re: Nachtrag
von: WernerB.
Geschrieben am: 10.05.2002 - 18:41:30

Hallo Ingo,

Deine Wünsche betreffend Gross-/Kleinschreibung und Nichtberücksichtigung von führenden/abschließenden Leerzeichen (hatte ich auch ohne Deinen Nachtrag so verstanden) sind jetzt eingearbeitet.
Bei der Gelegenheit habe ich auch noch zwei kleinere Programmfehler entdeckt und eliminiert.

Was die Angelegenheit mit dem Diagramm betrifft, so bitte ich Dich, doch diesbezüglich einen neuen Thread aufzumachen.

Zum Einen handelt es sich dabei um ein völlig neues Problem, zum Andern arbeite ich zwar gelegentlich auch mit Diagrammen, allerdings nur manuell; mit Makros, die Diagramme erzeugen oder bestehende verändern, habe ich mich noch nie befasst.

Von daher ist es sicherlich effizienter, wenn diesen Part ein Diagramm-Makroerfahrener Forumsteilnehmer übernimmt.

Ich bitte dafür um Verständnis.

MfG
WernerB.

nach oben   nach unten

Re: Nachtrag
von: Ingo J.
Geschrieben am: 10.05.2002 - 20:30:50

Danke,

Du hast mir sehr weitergeholfen. Ich hätte wahrscheinlich wochenlang gegrübelt wie ich das hinbekomme.

Werde die neue Formel gleich ausprobieren.
Was den Rest angeht ist kein Problem, das bekomme ich auch noch irgendwie zusammen.

MfG
Ingo


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Häufigkeit verschiedener Namen"