Hallo zusammen,
ich benötige mal wieder Eure Hilfe.
Für folgende Aufgabenstellung suche ich einen Lösungsansatz:
A B C D E F
1 12c c23 12b 12c 1
2 c23 d12 e8 c23 4
3 d12 f112 d12 d12 4
4 c23 d12 c23 x13 1
5 x13 x14 25 f112 1
x14 1
12b 1
e8 1
25 1
Die im Bereich A1:C5 stehenden Zeichenfolgen sollen in Spalte E
gelistet und in Spalte F deren Häufigkeit genannt werden.
Kann jemand helfen?
Danke schonmal.
Gruß
Rolf
Grüezi Rolf
Für folgende Aufgabenstellung suche ich einen Lösungsansatz:
A B C D E F
1 12c c23 12b 12c 1
2 c23 d12 e8 c23 4
3 d12 f112 d12 d12 4
4 c23 d12 c23 x13 1
5 x13 x14 25 f112 1
x14 1
12b 1
e8 1
25 1
Die im Bereich A1:C5 stehenden Zeichenfolgen sollen in Spalte
E
gelistet und in Spalte F deren Häufigkeit genannt werden.
Kann jemand helfen?
Schreibe/kopiere die Wete alle untereinander in eine einzige Spalte und werte diese dann mit einer Pivot-Tabelle aus. Das Umkopieren dürfte mehr Zeit in Anspruch nehmen, als das Erstellen der Pivot-Tabelle.
Mit freundlichen Grüssen
Thomas Ramel
Hallo Thomas,
danke für die schnelle Antwort.
Für folgende Aufgabenstellung suche ich einen Lösungsansatz:
A B C D E F
1 12c c23 12b 12c 1
2 c23 d12 e8 c23 4
3 d12 f112 d12 d12 4
4 c23 d12 c23 x13 1
5 x13 x14 25 f112 1
x14 1
12b 1
e8 1
25 1
Die im Bereich A1:C5 stehenden Zeichenfolgen sollen in Spalte
E
gelistet und in Spalte F deren Häufigkeit genannt werden.
Kann jemand helfen?
Schreibe/kopiere die Wete alle untereinander in eine einzige
Spalte und werte diese dann mit einer Pivot-Tabelle aus. Das
Umkopieren dürfte mehr Zeit in Anspruch nehmen, als das
Erstellen der Pivot-Tabelle.
Hm nja -
eine Spalte könnte aber 1500 Zeilen haben. Anzahl der Spalten
max 6. Da wird’s dann leicht unübersichtlich. Sorry, die Information
hätte ich gleich mit rüberbringen sollen.
So wie dargestellt, wäre es schon ganz hübsch.
Gruß
Rolf
Grüezi Rolf
Schreibe/kopiere die Wete alle untereinander in eine einzige
Spalte und werte diese dann mit einer Pivot-Tabelle aus. Das
Umkopieren dürfte mehr Zeit in Anspruch nehmen, als das
Erstellen der Pivot-Tabelle.
eine Spalte könnte aber 1500 Zeilen haben. Anzahl der Spalten
max 6. Da wird’s dann leicht unübersichtlich.
Das sind maximal 5 Kopier- oder Verschiebe-Vorgänge und 9000 Zeilen sind für eine Pivot-Tabelle ebenfalls ein Klacks.
Ich sehe da keine Probleme mit der Übersicht…
Mit freundlichen Grüssen
Thomas Ramel
A B C D E F
1 12c c23 12b 12c 1
2 c23 d12 e8 c23 4
3 d12 f112 d12 d12 4
4 c23 d12 c23 x13 1
5 x13 x14 25 f112 1
x14 1
12b 1
e8 1
25 1
So wie dargestellt, wäre es schon ganz hübsch.
Hallo Rolf,
bei www.excelformeln. de findest du sicher auch was bei Zählfuntionewn bzw. Listen/Datensätze.
Ggfs. mit Hilfsspalten bzw. Arrayformeln, mußte mal schauen.
Code für eine makrolösung ist nachstehend.
Gruß
Reinhard
Sub Berechne()
Dim Zei As Long, colC As New Collection, Zelle As Range
Application.ScreenUpdating = False
Columns("E:F").ClearContents
On Error Resume Next
For Each Zelle In Range("A1:C" & Range("A:C").SpecialCells(xlCellTypeLastCell).Row)
colC.Add CStr(Zelle.Value), CStr(Zelle.Value)
Next Zelle
On Error GoTo 0
For Zei = 1 To colC.Count
Cells(Zei, 5).Value = colC(Zei)
Next Zei
Range("F1:F" & Zei - 2).Formula = "=COUNTIF(A:C,E1)"
Range("F1:F" & Zei - 2).Value = Range("F1:F" & Zei - 2).Value
Application.ScreenUpdating = True
End Sub
Hallo Reinhard,
vielen Dank für Deine Mühe.
Das klappt prima.
Sub Berechne()
Dim Zei As Long, colC As New Collection, Zelle As Range
Application.ScreenUpdating = False
Columns(„E:F“).ClearContents
On Error Resume Next
For Each Zelle In Range(„A1:C“ &
Range(„A:C“).SpecialCells(xlCellTypeLastCell).Row)
colC.Add CStr(Zelle.Value), CStr(Zelle.Value)
Next Zelle
On Error GoTo 0
For Zei = 1 To colC.Count
Cells(Zei, 5).Value = colC(Zei)
Next Zei
Range(„F1:F“ & Zei - 2).Formula = „=COUNTIF(A:C,E1)“
Range(„F1:F“ & Zei - 2).Value = Range(„F1:F“ & Zei - 2).Value
Application.ScreenUpdating = True
End Sub
Ich habe das mal testweise etwas erweitert und die Auswert-
spalten nach O und P verlegt.
A B C D
1 3a zh 3a 3a
2 3a gf 3a 3a
3 3a dc 3a 3a
4 3a 5r 3a 3a
5 dc nnn uuu dc
6 5r rf 3a 5r
7 de zh 3a gf
8 rf gf 3a f5
9 zh dc 3a zh
10 3a 5r dc gf
11 3a de 5r dc
12 3a rf gf 5r
13 3a zh f5 dc
14 fff mmm ttt aa
15 5r dc gf gf
16 de 5r dc f5
17 rf de 5r zh
18 zh rf gf gf
19 3a rf dc dc
20 bbb iii ppp www
21 aaa hhh ooo vvv
22 bbb iii ppp www
23 ccc jjj qqq xxx
24 ddd kkk rrr yyy
25 eee lll sss zzz
26 fff mmm ttt aa
27 ggg nnn uuu bb
Sub Berechne()
Dim Zei As Long, colC As New Collection, Zelle As Range
Application.ScreenUpdating = False
'Columns("o:stuck\_out\_tongue:").ClearContents
On Error Resume Next
For Each Zelle In Range("A1:smiley:" & Range("A:smiley:").SpecialCells(xlCellTypeLastCell).Row)
colC.Add CStr(Zelle.Value), CStr(Zelle.Value)
Next Zelle
On Error GoTo 0
For Zei = 1 To colC.Count
Cells(Zei, 15).Value = colC(Zei)
Next Zei
Range("P1:stuck\_out\_tongue:" & Zei - 2).Formula = "=COUNTIF(A:smiley:,O1)"
Range("P1:stuck\_out\_tongue:" & Zei - 2).Value = Range("P1:stuck\_out\_tongue:" & Zei - 2).Value
Application.ScreenUpdating = True
End Sub
Dabei fällt auf, dass die Anzahl des letzten Eintrags, in diesem Fall
bb = 1 erst im 2. Durchlauf angezeigt wird.
Damit kann ich aber leben.
Danke, Gruß und schönes Wochenende
Rolf
Danke
Hallo Thomas
Schreibe/kopiere die Wete alle untereinander in eine einzige
Spalte und werte diese dann mit einer Pivot-Tabelle aus. Das
Umkopieren dürfte mehr Zeit in Anspruch nehmen, als das
Erstellen der Pivot-Tabelle.
eine Spalte könnte aber 1500 Zeilen haben. Anzahl der Spalten
max 6. Da wird’s dann leicht unübersichtlich.
Das sind maximal 5 Kopier- oder Verschiebe-Vorgänge und 9000
Zeilen sind für eine Pivot-Tabelle ebenfalls ein Klacks.
Ich sehe da keine Probleme mit der Übersicht…
Da hast Du sicher recht.
Es gibt ja immer viele Wege nach Rom.
Ich nehme heute mal die Makrolösung.
Danke für Deine Unterstützung.
Gruß und schönes Wochenende
Rolf
Ich habe das mal testweise etwas erweitert und die Auswert-
spalten nach O und P verlegt.
Dabei fällt auf, dass die Anzahl des letzten Eintrags, in
diesem Fall
bb = 1 erst im 2. Durchlauf angezeigt wird.
Hallo Rolf,
ich hatte mich sowieso schon gewundert warum ich da eine „2“ abziehen muß. Irgendwie lag es dran daß ch wiedermal auf Specialcells reinfiel
Naja, für mich nix neues grad mit dieser Funktion erlebte ich schon so einiges.
Ich habe den Code umgeschrieben. Auch Leerzellen in A:smiley: werden nun ignoriert.
Teste bitte den neuen Code. Berechne2 ist für den fall daß andere Spalten in C:smiley: „länger“ als A sein könnten.
Gruß
Reinhard
Option Explicit
Sub Berechne()
Dim Zei As Long, colC As New Collection, Zelle As Range
Application.ScreenUpdating = False
Columns("o:stuck\_out\_tongue:").ClearContents
On Error Resume Next
For Each Zelle In Range("A1:smiley:" & Cells(Rows.Count, 1).End(xlUp).Row)
If Zelle.Value "" Then colC.Add CStr(Zelle.Value), CStr(Zelle.Value)
Next Zelle
On Error GoTo 0
For Zei = 1 To colC.Count
Cells(Zei, 15).Value = colC(Zei)
Next Zei
With Range("P1:stuck\_out\_tongue:" & colC.Count)
.Formula = "=COUNTIF(A:smiley:,O1)"
.Value = .Value
End With
Application.ScreenUpdating = True
End Sub
Sub Berechne2()
Dim Zei As Long, colC As New Collection, Zelle As Range
Application.ScreenUpdating = False
Columns("o:stuck\_out\_tongue:").ClearContents
Zei = Application.Max(Cells(Rows.Count, 1).End(xlUp).Row, Cells(Rows.Count, 2).End(xlUp).Row)
Zei = Application.Max(Zei, Cells(Rows.Count, 3).End(xlUp).Row)
Zei = Application.Max(Zei, Cells(Rows.Count, 4).End(xlUp).Row)
On Error Resume Next
For Each Zelle In Range("A1:smiley:" & Zei)
If Zelle.Value "" Then colC.Add CStr(Zelle.Value), CStr(Zelle.Value)
Next Zelle
On Error GoTo 0
For Zei = 1 To colC.Count
Cells(Zei, 15).Value = colC(Zei)
Next Zei
With Range("P1:stuck\_out\_tongue:" & colC.Count)
.Formula = "=COUNTIF(A:smiley:,O1)"
.Value = .Value
End With
Application.ScreenUpdating = True
End Sub