Tabelle in Excel nach der Häufigkeit des Vorkommens sortieren
Hallo, ich habe eine frage zu Excel2003 unter WinXP,
und zwar:
Normalerweise kann man ja tabellen nach alphabet oder größe des zahlenwerts sortieren. ich möchte aber meine tabelle nach häufigkeit der vorkommnisse in einer bestimmten spalte sortieren. am besten lässt es sich wohl anhand eines bespiels erläutern:
die tabelle ist nun nach häufigkeit der werte in spalte D zu sortieren, dabei ist es wichtig, dass die einzelnen reihen zusammenbleiben.
die neue tabelle müsste fertig sortiert also folgendermaßen aussehen:
in spalte D befinden sich viele unterschiedliche werte und die liste ist sehr lang.
ich hab natürlich das problem schon gegooglet und folgendes gefunden:
Sub CountIfSort()
Dim intRow As Integer, intCounter As Integer, intArr As Integer
Range("A1").Sort key1:=Range("A1"), order1:=xlAscending, header:=xlNo
Range("B1").Formula = "=countif(A:A;A1)"
Range("B1:B" & Range("A1").CurrentRegion.Rows.Count).FillDown
Range("A1").Sort key1:=Range("B1"), order1:=xlDescending, header:=xlNo
Columns("B").ClearContents
End Sub
Dieses Makro sortiert anscheinend nach häufigkeit in spalte A. aber ich versteh das nicht ganz und vor allem wozu brauch ich da im quellcode ständig spalte B? da stehen doch bei mir eh ganz andere werte drin?
Also, wer kann mir helfen den Code auf Spalte D zu ändern?
A | B | C | D | E | F | |
---|---|---|---|---|---|---|
1 | x | x | x | a | z | Blindtext 2 |
2 | x | x | x | b | z | Blindtext 2 |
3 | x | x | x | b | z | Blindtext 2 |
4 | x | x | x | c | x | Blindtext 2 |
5 | x | x | x | c | x | Blindtext 2 |
6 | x | x | x | c | x | Blindtext 2 |
die tabelle ist nun nach häufigkeit der werte in spalte D zu sortieren, dabei ist es wichtig, dass die einzelnen reihen zusammenbleiben.
die neue tabelle müsste fertig sortiert also folgendermaßen aussehen:
A | B | C | D | E | F | |
---|---|---|---|---|---|---|
1 | x | x | x | c | x | Blindtext 2 |
2 | x | x | x | c | x | Blindtext 2 |
3 | x | x | x | c | x | Blindtext 2 |
4 | x | x | x | b | z | Blindtext 2 |
5 | x | x | x | b | z | Blindtext 2 |
6 | x | x | x | a | z | Blindtext 2 |
in spalte D befinden sich viele unterschiedliche werte und die liste ist sehr lang.
ich hab natürlich das problem schon gegooglet und folgendes gefunden:
Sub CountIfSort()
Dim intRow As Integer, intCounter As Integer, intArr As Integer
Range("A1").Sort key1:=Range("A1"), order1:=xlAscending, header:=xlNo
Range("B1").Formula = "=countif(A:A;A1)"
Range("B1:B" & Range("A1").CurrentRegion.Rows.Count).FillDown
Range("A1").Sort key1:=Range("B1"), order1:=xlDescending, header:=xlNo
Columns("B").ClearContents
End Sub
Dieses Makro sortiert anscheinend nach häufigkeit in spalte A. aber ich versteh das nicht ganz und vor allem wozu brauch ich da im quellcode ständig spalte B? da stehen doch bei mir eh ganz andere werte drin?
Also, wer kann mir helfen den Code auf Spalte D zu ändern?
Please also mark the comments that contributed to the solution of the article
Content-Key: 144009
Url: https://administrator.de/contentid/144009
Printed on: April 19, 2024 at 17:04 o'clock
3 Comments
Latest comment
Hallo gabeomania,
was es mit diesem Code von dir auf sich hat kann ich dir im Moment nicht sagen, bin noch zu müde -_-
Ein Tipp am Rande, die Makro Möglichkeit Makros unter Excel aufzuzeichnen hilft manchmal Wunder. Neben einem Denkanstoß findet man hier oftmals schon die Lösung. Also Beispiel kann ich die beiden Codes zeigen.
Ich hoffe ich konnte dir etwas helfen, trotz meines fehlenden Schlafes.
Gruß
duffman521
was es mit diesem Code von dir auf sich hat kann ich dir im Moment nicht sagen, bin noch zu müde -_-
Sub Sortieren_a-z()
Range("A1:F7").Select
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add Key:=Range("D1:D7") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Tabelle1").Sort
.SetRange Range("A1:F7")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Sub sortieren_z-a()
Range("A1:F7").Select
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add Key:=Range("D1:D7") _
, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Tabelle1").Sort
.SetRange Range("A1:F7")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Ein Tipp am Rande, die Makro Möglichkeit Makros unter Excel aufzuzeichnen hilft manchmal Wunder. Neben einem Denkanstoß findet man hier oftmals schon die Lösung. Also Beispiel kann ich die beiden Codes zeigen.
Ich hoffe ich konnte dir etwas helfen, trotz meines fehlenden Schlafes.
Gruß
duffman521
[OT]
Ich geb dir mal einen Tipp, wie ich es im Forum am liebsten handhabe, wenn jemand mit dem berühmten Zitat "And now something completely different...." einfach weiterzuschreiben....
---> Ich habe diesen Beitrag mal auf "Erledigt" gesetzt.
Aber neue Beiträge sind immer willkommen...
Grüße
Biber
*+* Dieser Kommentar wird nach signalisierter Einsicht des Threadowners wieder entfernt. *+*
[/OT]
Zitat von @gabeomania:
oh ok, ich habs aber in der zwischenzeit schon gelöst. ...
jetzt hab ich aber schon eine neue frage,
wie kann ich {whatever jetzt oben auf meiner ToDo-Liste nach oben gerutscht ist} ?
oh ok, ich habs aber in der zwischenzeit schon gelöst. ...
jetzt hab ich aber schon eine neue frage,
wie kann ich {whatever jetzt oben auf meiner ToDo-Liste nach oben gerutscht ist} ?
Ich geb dir mal einen Tipp, wie ich es im Forum am liebsten handhabe, wenn jemand mit dem berühmten Zitat "And now something completely different...." einfach weiterzuschreiben....
---> Ich habe diesen Beitrag mal auf "Erledigt" gesetzt.
Aber neue Beiträge sind immer willkommen...
Grüße
Biber
*+* Dieser Kommentar wird nach signalisierter Einsicht des Threadowners wieder entfernt. *+*
[/OT]