❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Sortierlisteneintrag für ca 5000 Zeilen
Sortierlisteneintrag für ca 5000 Zeilen
Hallo,
ich habe eine Tabelle mit LO5x erstellt. Ich habe 13 Spalten (A bis M) und ca. 4200 Zeilen, jede Zeile ist eine eigenständige Datensatz. Ich muss die Zeilen auf- oder absteigend sortieren. Jede Zeile enthält nur Zahlen (Temperaturwerte: 1 bis 70). Gebe ich den Befehl zeilenweise Sortieren dann wird nur die erste Zeile (A1:M1) sortiert. Ich habe ein bisschen recherchiert und irgendwo gelesen, was man dafür zuerst einen Sortierlisteneintrag machen muss, was ich aber leider nicht machen konnte. Wie macht man das als Formel für mehrere Zeilen? Oder gibt es noch andere Lösungen? Vielen Dank!
Artun
ich habe eine Tabelle mit LO5x erstellt. Ich habe 13 Spalten (A bis M) und ca. 4200 Zeilen, jede Zeile ist eine eigenständige Datensatz. Ich muss die Zeilen auf- oder absteigend sortieren. Jede Zeile enthält nur Zahlen (Temperaturwerte: 1 bis 70). Gebe ich den Befehl zeilenweise Sortieren dann wird nur die erste Zeile (A1:M1) sortiert. Ich habe ein bisschen recherchiert und irgendwo gelesen, was man dafür zuerst einen Sortierlisteneintrag machen muss, was ich aber leider nicht machen konnte. Wie macht man das als Formel für mehrere Zeilen? Oder gibt es noch andere Lösungen? Vielen Dank!
Artun
Re: Sortierlisteneintrag für ca 5000 Zeilen
Hallo,
muss du jede Zeile für sich sortieren?
muss du jede Zeile für sich sortieren?
Gruß,
mikele
mikele
Re: Sortierlisteneintrag für ca 5000 Zeilen
hi,
ja, jede Zeile für sich selbst.
ja, jede Zeile für sich selbst.
Re: Sortierlisteneintrag für ca 5000 Zeilen
Hallo,
dann wird es das sinnvollste, ein Makro zu schreiben.
Alternativ müsste jede Zeile einzeln gewählt und sortiert werden - das macht keinen Spaß.
Mal auf die Schnelle (mit Hilfe von Andrew Pitonyak, Listing 430) zusammengestrickt, sortiert dir folgendes Makro die ersten 5000 Zeilen auf Tabelle1 (zeilenweise) nach aufsteigenden Werten.
dann wird es das sinnvollste, ein Makro zu schreiben.
Alternativ müsste jede Zeile einzeln gewählt und sortiert werden - das macht keinen Spaß.
Mal auf die Schnelle (mit Hilfe von Andrew Pitonyak, Listing 430) zusammengestrickt, sortiert dir folgendes Makro die ersten 5000 Zeilen auf Tabelle1 (zeilenweise) nach aufsteigenden Werten.
Code: Alles auswählen
Sub zeilen_sortieren
Dim oSheet as object
Dim oRange as object
Dim oSortFields(0) as new com.sun.star.util.SortField
Dim oSortDesc(1) as new com.sun.star.beans.PropertyValue
oSheet = ThisComponent.Sheets(0)
REM Sortiert wird über das erste Feld im Bereich.
oSortFields(0).Field = 0
oSortFields(0).SortAscending =true 'aufsteigende Werte
REM Die zu nutzenden Sortierfelder.
oSortDesc(0).Name = "SortFields"
oSortDesc(0).Value = oSortFields()
oSortDesc(1).Name = "IsSortColumns" 'Spalten werden sortiert
oSortDesc(1).Value = True
REM Der zu sortierende Bereich.
for i= 0 to 5000
oRange = oSheet.getCellRangeByPosition(0,i,12,i)
REM Nun wird der Bereich sortiert!
oRange.Sort(oSortDesc())
next
End Sub
- Dateianhänge
-
- makro_sortieren.ods
- (375.9 KiB) 81-mal heruntergeladen
Gruß,
mikele
mikele
-
- * LO-Experte *
- Beiträge: 3060
- Registriert: Mo 12. Nov 2012, 16:59
Re: Sortierlisteneintrag für ca 5000 Zeilen
Darf ich noch mal nachfragen
1. was Du und
2. in welcher Richtung Du sortieren möchtest?
Denn das was Du mit Sortierlisten ansprichst bezieht sich nicht primär auf die Richtung, sondern auf die Art dr Sortierung.
Wenn Du also in Spalten über die 5000 Datensätze (in Zeilen) sortieren möchtest, mußt Du nur
den Datensatz = Zeile angeben nach selchem die Daten, deren Beziehung in der Spalte erhalten bleibt, sortieren möchtest:
Deine Tabelle markieren und dann nach
Daten->sortieren->Richtung von links nach rechts ankreuzen...
1. was Du und
2. in welcher Richtung Du sortieren möchtest?
Denn das was Du mit Sortierlisten ansprichst bezieht sich nicht primär auf die Richtung, sondern auf die Art dr Sortierung.
Wenn Du also in Spalten über die 5000 Datensätze (in Zeilen) sortieren möchtest, mußt Du nur
den Datensatz = Zeile angeben nach selchem die Daten, deren Beziehung in der Spalte erhalten bleibt, sortieren möchtest:
Deine Tabelle markieren und dann nach
Daten->sortieren->Richtung von links nach rechts ankreuzen...
LO 24.8.7.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Sortierlisteneintrag für ca 5000 Zeilen
Hallo,
es hat zwar lange gedauert und bisschen nerven gekostet, am Ende hat es aber geklappt und zwar mit Makro; mit einfachen Sortierungsbefehl von links nach rechts wird immer nur die erste Zeile sortiert. Mit 68 habe ich wieder mal was schönes gelernt. (In einem Buch mit ca. 600 Seiten -Excxx Makros- ist so ein Makro nicht zu finden.)
Herzlichen vielen Dank an Mikele und Pit Zyclade!
Grüsse
es hat zwar lange gedauert und bisschen nerven gekostet, am Ende hat es aber geklappt und zwar mit Makro; mit einfachen Sortierungsbefehl von links nach rechts wird immer nur die erste Zeile sortiert. Mit 68 habe ich wieder mal was schönes gelernt. (In einem Buch mit ca. 600 Seiten -Excxx Makros- ist so ein Makro nicht zu finden.)
Herzlichen vielen Dank an Mikele und Pit Zyclade!
Grüsse
Zuletzt geändert von artun am Di 16. Aug 2016, 19:31, insgesamt 1-mal geändert.
Re: Sortierlisteneintrag für ca 5000 Zeilen
Hallo,
nur so zum Spaß das Ganze mal in Python (läuft bei 5000 Zeilen erheblich schneller):
Die Python-Profis kennen vielleicht noch eine optimalere Variante.
nur so zum Spaß das Ganze mal in Python (läuft bei 5000 Zeilen erheblich schneller):
Code: Alles auswählen
def zeile_sortieren():
oDoc = XSCRIPTCONTEXT.getDocument()
oSheet = oDoc.Sheets.getByIndex(0)
oCells = oSheet.getCellRangeByPosition(0,0,12,5000)
sDaten=list(oCells.getDataArray())
for n in range(len(sDaten)):
sDaten[n]=tuple(sorted(list(sDaten[n])))
oCells.setDataArray(tuple(sDaten))
Gruß,
mikele
mikele
Re: Sortierlisteneintrag für ca 5000 Zeilen
Hallo,
wie kann ich denn diese "pythonartige Sätze" ganz konkret bei meinen Tabellen benutzen? Als Script oder als Makro oder....? wo und als was muss ich denn diese Zeilen speichern?
Ich habe/benutze xubuntu 16.04 und u.a. LO5x.
Grüße
wie kann ich denn diese "pythonartige Sätze" ganz konkret bei meinen Tabellen benutzen? Als Script oder als Makro oder....? wo und als was muss ich denn diese Zeilen speichern?
Ich habe/benutze xubuntu 16.04 und u.a. LO5x.
Grüße
Re: Sortierlisteneintrag für ca 5000 Zeilen
Hallo,
du speicherst den Code in einer .py-(Text)datei (z. B. sortieren.py). Diese Datei legst du in deinem home-Verzeichis (müsste das gleiche sein, wie bei mir unter Ubuntu)
/home/...deinName.../.config/libreoffice/4/user/Scripts/python
(ggf. musst du /Scripts/python noch anlegen).
Anschließend kannst du es als Makro ausführen: ->Extras->Makros->Ausführen und ist dort in der Bibliothek "Meine Makros" zu finden.
Falls das nicht klappt (und unter ->Extras->Makros->Makros verwalten kein Python zur Verfügung steht) muss eventuell der libreoffice-script-provider-python nachinstalliert werden.
Ich hoffe, du kommst mit diesem Gewurschtel zurecht ...
du speicherst den Code in einer .py-(Text)datei (z. B. sortieren.py). Diese Datei legst du in deinem home-Verzeichis (müsste das gleiche sein, wie bei mir unter Ubuntu)
/home/...deinName.../.config/libreoffice/4/user/Scripts/python
(ggf. musst du /Scripts/python noch anlegen).
Anschließend kannst du es als Makro ausführen: ->Extras->Makros->Ausführen und ist dort in der Bibliothek "Meine Makros" zu finden.
Falls das nicht klappt (und unter ->Extras->Makros->Makros verwalten kein Python zur Verfügung steht) muss eventuell der libreoffice-script-provider-python nachinstalliert werden.
Ich hoffe, du kommst mit diesem Gewurschtel zurecht ...
Gruß,
mikele
mikele
Re: Sortierlisteneintrag für ca 5000 Zeilen
Hallo,
danke für die schnelle Antwort. Das Ganze aber kann ich erst am Montag versuchen zu testen. Ich werd' mich dann mit Sicherheit wieder melden.
Grüße
danke für die schnelle Antwort. Das Ganze aber kann ich erst am Montag versuchen zu testen. Ich werd' mich dann mit Sicherheit wieder melden.
Grüße
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.