Zahlen EINER Zelle sortieren
Moderator: Moderatoren
Zahlen EINER Zelle sortieren
Hi Leute
Mich beschäftigt es, wie man Zahlen die innerhalb einer Zelle hintereinander stehen, aufsteigend sortieren kann?
Und zwar habe ich in einer Zelle Ringgrößen stehen, die unsortiert sind.
Das sieht wie folgt aus:
64 54 56 58 62 60 66 68 72 52 70
Ich müsste die Zahlen in der Zelle aufsteigend sortiert haben und zwar:
52 54 56 58 60 62 64 66 68 usw.
Die Zahlen innerhalb der Zelle/n sind z.Z. mit einem Leerzeichen getrennt.
Ist es überhaupt möglich?
Ich habe versucht die Zahlen im Texteditor mit einem TAB zu trennen, diese in seperate Spalten einer Zeile zu kopieren und sie dann zu sortieren in einer Zeile, aber das funzt irgendwie nicht, oder nur unzuverlässig.
Habt ihr Rat oder Ideen?
Danke im voraus
Gruß
George
Mich beschäftigt es, wie man Zahlen die innerhalb einer Zelle hintereinander stehen, aufsteigend sortieren kann?
Und zwar habe ich in einer Zelle Ringgrößen stehen, die unsortiert sind.
Das sieht wie folgt aus:
64 54 56 58 62 60 66 68 72 52 70
Ich müsste die Zahlen in der Zelle aufsteigend sortiert haben und zwar:
52 54 56 58 60 62 64 66 68 usw.
Die Zahlen innerhalb der Zelle/n sind z.Z. mit einem Leerzeichen getrennt.
Ist es überhaupt möglich?
Ich habe versucht die Zahlen im Texteditor mit einem TAB zu trennen, diese in seperate Spalten einer Zeile zu kopieren und sie dann zu sortieren in einer Zeile, aber das funzt irgendwie nicht, oder nur unzuverlässig.
Habt ihr Rat oder Ideen?
Danke im voraus
Gruß
George
Re: Zahlen EINER Zelle sortieren
Hallo,
ich würde die Zelle markieren und Daten-> Text in Spalten... auswählen. Da bekommst Du ein Auswahlmenü und nimmst en entsprechenden Texttrenner (bei Dir anscheinend das Leerzeichen). Wenn Du auf ok gehst, hast Du dann die Zahlen nebeneinander in Spalten stehen. Die kopierst Du (gehe in die erste Zelle ganz links der Zeile, drücke gleichzeitig Strg+Shift+PfeilRechts, danach Strg+C), dann fügst Du Sie mit Strg+Shift+V (oder aber Bearbeiten->Inhalte einfügen) ein und wählst bei dem Auswahlfeld "Transponieren". Damit werden die Zahlen untereinander geschrieben. Jetzt kannst Du sie einfach sortieren.
Paß ein bißchen bei der ganzen Kopiererei und Texttrennerei auf, das die Zahlen immer genug Platz haben und keine anderen Daten überschreiben. Vielleicht machst Du das alles in einem separaten Tabellenblatt und fügst erst das Ergebnis dann in Deine eigentliche Tabelle ein. Dann kann zumindest beim Unwandeln nix kaputt gehen.
Viele Grüße
AhQ
ich würde die Zelle markieren und Daten-> Text in Spalten... auswählen. Da bekommst Du ein Auswahlmenü und nimmst en entsprechenden Texttrenner (bei Dir anscheinend das Leerzeichen). Wenn Du auf ok gehst, hast Du dann die Zahlen nebeneinander in Spalten stehen. Die kopierst Du (gehe in die erste Zelle ganz links der Zeile, drücke gleichzeitig Strg+Shift+PfeilRechts, danach Strg+C), dann fügst Du Sie mit Strg+Shift+V (oder aber Bearbeiten->Inhalte einfügen) ein und wählst bei dem Auswahlfeld "Transponieren". Damit werden die Zahlen untereinander geschrieben. Jetzt kannst Du sie einfach sortieren.
Paß ein bißchen bei der ganzen Kopiererei und Texttrennerei auf, das die Zahlen immer genug Platz haben und keine anderen Daten überschreiben. Vielleicht machst Du das alles in einem separaten Tabellenblatt und fügst erst das Ergebnis dann in Deine eigentliche Tabelle ein. Dann kann zumindest beim Unwandeln nix kaputt gehen.
Viele Grüße
AhQ
Re: Zahlen EINER Zelle sortieren
Hallo AhQ
Danke für die Hilfestellung.
Diese Lösung wäre hilfreich bei wenigen Zellen.
Ich habe aber weit über 700 Zeilen/ Zellen, die sortiert werden müssten.
Was so aussieht: (dabei ist jede Reihe jeweils eine Zelle in der Tabelle)
54 56 60 62 64 52 58 72 66 68 70 74 76
66 56 74 64 52 72 50 54 62 60 58 68 70
64 58 62 60 66 56 54 70 52 68 72
54 56 58 60 62 64 66 68 70 72 74 52 50
68 70
60 64 66 68 70 72 74 76 52 62 54 56 58
60 62 66 68 70 72 74 76 64 52 54 56 58
72 74 76 78
70 72 74 76 78
68 70 72 74 76
48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80
68 70 72 74 76
52 54 56 58 60 62 64 66 68 70 72 74 76 50 48
54 56 58 60 62 64 66 68 70 72 74 76 50 52 48 78
76 74 70 62 54 60 64 56 58 68 72 66
Wenn ich die jetzt hin und her kopiere und die Zahlen in Spalten untereinander schreiben lasse, kriege ich die Zuordnung naher nie hin.
Danke für die Hilfestellung.
Diese Lösung wäre hilfreich bei wenigen Zellen.
Ich habe aber weit über 700 Zeilen/ Zellen, die sortiert werden müssten.
Was so aussieht: (dabei ist jede Reihe jeweils eine Zelle in der Tabelle)
54 56 60 62 64 52 58 72 66 68 70 74 76
66 56 74 64 52 72 50 54 62 60 58 68 70
64 58 62 60 66 56 54 70 52 68 72
54 56 58 60 62 64 66 68 70 72 74 52 50
68 70
60 64 66 68 70 72 74 76 52 62 54 56 58
60 62 66 68 70 72 74 76 64 52 54 56 58
72 74 76 78
70 72 74 76 78
68 70 72 74 76
48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80
68 70 72 74 76
52 54 56 58 60 62 64 66 68 70 72 74 76 50 48
54 56 58 60 62 64 66 68 70 72 74 76 50 52 48 78
76 74 70 62 54 60 64 56 58 68 72 66
Wenn ich die jetzt hin und her kopiere und die Zahlen in Spalten untereinander schreiben lasse, kriege ich die Zuordnung naher nie hin.
Re: Zahlen EINER Zelle sortieren
ok, dann eine andere Idee.
Markier die fragliche Spalte, kopier sie wie sie ist in ein neues Tabellenblatt. Dann speicher das Ganze mit Speichern unter als "Text csv". Mach die csv-Datei mit einem Texteditor auf und ersetze alle Anführungszeichen durch nichts. Speicher das wieder und öffne nun die Datei ganz normal mit Doppelklick (also mit Calc). Jetzt sollte der Textimport-Dialog kommen. Da machst Du einen Haken bei "Leerzeichen" und schon sollten alle Werte nebeneinander in Spalten stehen. Die kannst Du dann wie oben beschrieben von quer nach senkrecht transponieren und sortieren.Wenn Du diese Tabelle danach speichern willst, vergiß nicht bei "Speichern unter" wieder ods anzugeben, sonst speicherst Du das immer als csv ab.
Bei mir würde der Weg mit deinen Beispielzahlen gut (und vor allem relativ schnell) klappen.
Viele Grüße
AhQ
Markier die fragliche Spalte, kopier sie wie sie ist in ein neues Tabellenblatt. Dann speicher das Ganze mit Speichern unter als "Text csv". Mach die csv-Datei mit einem Texteditor auf und ersetze alle Anführungszeichen durch nichts. Speicher das wieder und öffne nun die Datei ganz normal mit Doppelklick (also mit Calc). Jetzt sollte der Textimport-Dialog kommen. Da machst Du einen Haken bei "Leerzeichen" und schon sollten alle Werte nebeneinander in Spalten stehen. Die kannst Du dann wie oben beschrieben von quer nach senkrecht transponieren und sortieren.Wenn Du diese Tabelle danach speichern willst, vergiß nicht bei "Speichern unter" wieder ods anzugeben, sonst speicherst Du das immer als csv ab.
Bei mir würde der Weg mit deinen Beispielzahlen gut (und vor allem relativ schnell) klappen.
Viele Grüße
AhQ
Re: Zahlen EINER Zelle sortieren
Hallo Zusammen,
Und nun?
Jürgen
gbalbier hat geschrieben:Ich habe aber weit über 700 Zeilen
Ein Tabellenblatt hat aber nur 256 Spalten.AhQ hat geschrieben:Die kannst Du dann wie oben beschrieben von quer nach senkrecht transponieren und sortieren.
Und nun?
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Zahlen EINER Zelle sortieren
Hallo,
@paljass
So eine Lösung hab ich mir gestern auch schon überlegen wollen, aber wie fängt man es ab, wenn eine ein- oder dreistellige Zahl vorkommt? Da müßte man im Grunde für die Zelle (beispielweise A2) das erste Leerzeichen suchen mit =FINDEN(" ";$A$2;1) und für die folgenden den 3. Parameter (also den Suchbeginn) vom jeweilig letzten gefundenen Leerzeichen abhängig machen, also wohl =FINDEN(" ";$A$2;B2+1)(sofern in B2 die erste Finden-Formel steht). Das müßte ich jetzt über soviele Spalte ziehen, wie ich wahrscheinlich maximal Zahlen in der Zelle hab. Auf diese Spalten müßten sich dann die Teil()-Formeln beziehen, woebi auch bei denen dann die 3. Parameter variabel gestalten müßten. Ich hab das mal in der Beispieldatei gemacht, wo ich auf Deiner Tabelle aufgebaut hab. da ist jetzt aber noch keine Fehlerabfrage drin, falls weniger als die angegebenen Zahlen in einer Zelle vorkommen.
Insgesamt finde ich die Lösung mit dem Textimport einfacher.
Viele Grüße
AhQ
jetzt war ich kurz verunsichert, aber ein Blick in mein Calc (OOo 3.1) hat mir gezeigt, daß da 1024 Spalten (bis AMJ) sind. Das steht so auch auf der Produktvorstellungsseite von Calc ganz unten in Fettdruck.turtle47 hat geschrieben:Ein Tabellenblatt hat aber nur 256 Spalten.
@paljass
So eine Lösung hab ich mir gestern auch schon überlegen wollen, aber wie fängt man es ab, wenn eine ein- oder dreistellige Zahl vorkommt? Da müßte man im Grunde für die Zelle (beispielweise A2) das erste Leerzeichen suchen mit =FINDEN(" ";$A$2;1) und für die folgenden den 3. Parameter (also den Suchbeginn) vom jeweilig letzten gefundenen Leerzeichen abhängig machen, also wohl =FINDEN(" ";$A$2;B2+1)(sofern in B2 die erste Finden-Formel steht). Das müßte ich jetzt über soviele Spalte ziehen, wie ich wahrscheinlich maximal Zahlen in der Zelle hab. Auf diese Spalten müßten sich dann die Teil()-Formeln beziehen, woebi auch bei denen dann die 3. Parameter variabel gestalten müßten. Ich hab das mal in der Beispieldatei gemacht, wo ich auf Deiner Tabelle aufgebaut hab. da ist jetzt aber noch keine Fehlerabfrage drin, falls weniger als die angegebenen Zahlen in einer Zelle vorkommen.
Insgesamt finde ich die Lösung mit dem Textimport einfacher.
Viele Grüße
AhQ
- Dateianhänge
-
- AutomatischeLängenerkennung.ods
- (8.73 KiB) 54-mal heruntergeladen
Zuletzt geändert von AhQ am Sa, 30.05.2009 09:43, insgesamt 2-mal geändert.
Re: Zahlen EINER Zelle sortieren
Hallo Zusammen,
Danke für die Info. Habs jetzt in meinen grauen Gehirnzellen abgespeichert.
Wie beneide ich Euch für Eure Formelkonstrukte. Was man mit Formeln so alles machen kann. Echt klasse.
Ich habe mal wieder auf die schnöde Makrovariante zugegriffen.
Jürgen
oh man, da war ich aber noch auf dem alten Stand.AhQ hat geschrieben:hat mir gezeigt, daß da 1024 Spalten
Danke für die Info. Habs jetzt in meinen grauen Gehirnzellen abgespeichert.
Wie beneide ich Euch für Eure Formelkonstrukte. Was man mit Formeln so alles machen kann. Echt klasse.
Ich habe mal wieder auf die schnöde Makrovariante zugegriffen.
Jürgen
- Dateianhänge
-
- Ringrösse_sortieren.ods
- (13.08 KiB) 79-mal heruntergeladen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Zahlen EINER Zelle sortieren
wie beneide ich Dich um Deine Makrokentnisse. Was man damit alles machen kann. Ein Makro wäre gestern mein allererster Gedanke gewesen, dann wollte ich aber irgendwie selber zu einer Lösung kommen.turtle47 hat geschrieben:Wie beneide ich Euch für Eure Formelkonstrukte. Was man mit Formeln so alles machen kann. Echt klasse.
Für mich ist (leider) Deine Lösung ein kleines Wunderwerk...
Viele Grüße
AhQ
Re: Zahlen EINER Zelle sortieren
Hallo
Darf ich meinen Senf auch noch dazugeben ?
Bei den "reinen" Formellösungen spricht doch eigentlich nichts dagegen den ersten Schritt mittels ->Daten-->Text in Spalten zu erledigen.
Ansonsten kann ich noch eine Benutzerfunktion anbieten die ich aus Jürgens Makrocode abgeleitet habe:
Aufgerufen wird das mit der Zellformel:
=ZELL_SORT(A2;",")
der 2. Parameter ist optional, falls keiner angegeben ist, wird ein Leerzeichen als Trenner angenommen.
Gruß Karo
Darf ich meinen Senf auch noch dazugeben ?
Bei den "reinen" Formellösungen spricht doch eigentlich nichts dagegen den ersten Schritt mittels ->Daten-->Text in Spalten zu erledigen.
Ansonsten kann ich noch eine Benutzerfunktion anbieten die ich aus Jürgens Makrocode abgeleitet habe:
Code: Alles auswählen
function zell_sort(zahlenstring as string ,optional trenner as string) as string
Dim Count As Integer
Dim Count2 As Integer
Dim Temp As String
if isMissing( trenner) then
trenner = " "
end if
ainput = split(zahlenstring , trenner)
if ubound(ainput) = 0 then
zell_sort = "#?trenner?#"
exit function
end if
For Count = 0 To ubound(ainput)
For Count2 = Count To ubound(ainput)
If ainput(Count) > ainput(Count2) Then
Temp = ainput(Count)
ainput(Count) = ainput(Count2)
ainput(Count2) = Temp
End If
Next Count2
Next Count
zell_sort = join(ainput, trenner)
End function
=ZELL_SORT(A2;",")
der 2. Parameter ist optional, falls keiner angegeben ist, wird ein Leerzeichen als Trenner angenommen.
Gruß Karo
Zuletzt geändert von Karolus am Sa, 30.05.2009 15:53, insgesamt 1-mal geändert.
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Zahlen EINER Zelle sortieren
aber immer doch, gerne!Karolus hat geschrieben:Darf ich meinen Senf auch noch dazugeben ?
das hab ich dem Fragensteller heute nacht schon angeboten, er meinte dann aber, daß er über 700 solche Zellen hat und ihm das zu umständlich wäre. Siehe hierKarolus hat geschrieben:Bei den "reinen" Formellösungen spricht doch eigentlich nichts dagegen den ersten Schritt mittels ->Daten-->Text in Spalten zu erledigen.
auch eine schicke Idee!Karolus hat geschrieben:Ansonsten kann ich noch eine Benutzerfunktion anbieten
Viele Grüße
AhQ
Re: Zahlen EINER Zelle sortieren
Hallo Jungs
Euch allen erst einmal ein RIESEN DANKE SCHÖN.
Ihr alle habt mir sehr, sehr geholfen.
Einfache Excel/ Calc Sachen kriege ich gerade noch hin, aber als ich eure Lösungen gesehen hab..... ohhh man ohhhh man, das wäre eine Nummmer zu groß für mich um das alleine hinzukriegen.
Nach mal an dieser Stelle zu tiefsten Dank verpflichtet!!!!
Die Sortierung hab ich jetzt schnell mit der Sortier Formel von @paljass gemacht.
Habe die Formel auf 18 Stellen verlängert (so viele Größen hab ich)
Und schwupp die Wupp alle 700 Zeilen sind sortiert.
DANKE
Das mit dem Makro fand ich auch sehr interessant, gucke mir das aber morgen genauer an.
Makros sind für mich auch schon wieder eine Stufe höher.
Erstmal an euch alle ein schönes WoEnde und schöne erholsame Pfingstfeiertage
Gruß
George
Euch allen erst einmal ein RIESEN DANKE SCHÖN.
Ihr alle habt mir sehr, sehr geholfen.
Einfache Excel/ Calc Sachen kriege ich gerade noch hin, aber als ich eure Lösungen gesehen hab..... ohhh man ohhhh man, das wäre eine Nummmer zu groß für mich um das alleine hinzukriegen.
Nach mal an dieser Stelle zu tiefsten Dank verpflichtet!!!!
Die Sortierung hab ich jetzt schnell mit der Sortier Formel von @paljass gemacht.
Habe die Formel auf 18 Stellen verlängert (so viele Größen hab ich)
Und schwupp die Wupp alle 700 Zeilen sind sortiert.
DANKE

Das mit dem Makro fand ich auch sehr interessant, gucke mir das aber morgen genauer an.
Makros sind für mich auch schon wieder eine Stufe höher.
Erstmal an euch alle ein schönes WoEnde und schöne erholsame Pfingstfeiertage
Gruß
George