Seite 1 von 1

Zahlen EINER Zelle sortieren

Verfasst: Sa, 30.05.2009 00:45
von gbalbier
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

Re: Zahlen EINER Zelle sortieren

Verfasst: Sa, 30.05.2009 01:45
von AhQ
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

Re: Zahlen EINER Zelle sortieren

Verfasst: Sa, 30.05.2009 02:04
von gbalbier
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.

Re: Zahlen EINER Zelle sortieren

Verfasst: Sa, 30.05.2009 02:37
von AhQ
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

Re: Zahlen EINER Zelle sortieren

Verfasst: Sa, 30.05.2009 08:14
von turtle47
Hallo Zusammen,
gbalbier hat geschrieben:Ich habe aber weit über 700 Zeilen
AhQ hat geschrieben:Die kannst Du dann wie oben beschrieben von quer nach senkrecht transponieren und sortieren.
Ein Tabellenblatt hat aber nur 256 Spalten.

Und nun?

Jürgen

Re: Zahlen EINER Zelle sortieren

Verfasst: Sa, 30.05.2009 09:26
von AhQ
Hallo,
turtle47 hat geschrieben:Ein Tabellenblatt hat aber nur 256 Spalten.
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.

@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

Re: Zahlen EINER Zelle sortieren

Verfasst: Sa, 30.05.2009 09:38
von turtle47
Hallo Zusammen,
AhQ hat geschrieben:hat mir gezeigt, daß da 1024 Spalten
oh man, da war ich aber noch auf dem alten Stand.

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

Re: Zahlen EINER Zelle sortieren

Verfasst: Sa, 30.05.2009 09:47
von AhQ
turtle47 hat geschrieben:Wie beneide ich Euch für Eure Formelkonstrukte. Was man mit Formeln so alles machen kann. Echt klasse.
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.

Für mich ist (leider) Deine Lösung ein kleines Wunderwerk...

Viele Grüße
AhQ

Re: Zahlen EINER Zelle sortieren

Verfasst: Sa, 30.05.2009 14:03
von Karolus
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:

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
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

Re: Zahlen EINER Zelle sortieren

Verfasst: Sa, 30.05.2009 14:29
von AhQ
Karolus hat geschrieben:Darf ich meinen Senf auch noch dazugeben ?
aber immer doch, gerne!
Karolus hat geschrieben:Bei den "reinen" Formellösungen spricht doch eigentlich nichts dagegen den ersten Schritt mittels ->Daten-->Text in Spalten zu erledigen.
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 hier
Karolus hat geschrieben:Ansonsten kann ich noch eine Benutzerfunktion anbieten
auch eine schicke Idee!

Viele Grüße
AhQ

Re: Zahlen EINER Zelle sortieren

Verfasst: So, 31.05.2009 00:31
von gbalbier
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