Leerzellen löschen! Nicht Zeilen! Spezielleres Problem!
Moderator: Moderatoren
-
- Beiträge: 3
- Registriert: Mo, 11.01.2021 14:02
Leerzellen löschen! Nicht Zeilen! Spezielleres Problem!
Servus Community,
vielleicht seit ihr ja bisschen schlauer als ich ... Ich knobel seit Wochen an einem Problem, finde den Fehler aber nicht und kann es auch nicht lösen ...
Worum geht es?
Ich baue gerade an einem Konzept zur Verbesserung der Datenverarbeitung im E-Business Bereich.
Grundproblem:
Legende: # = Zelle hat Wert / +=Leerzelle
Ist-Zustand:
Zeilen der Form
A1 B2 C1 D1 E1 F1 G1 H1 I1 ...
# # # + # + + + #
# + + + # + # # +
.
.
.
Sollzustand:
A1 B2 C1 D1 E1 F1 G1 H1 I1 ...
# # # # # + + + +
# # # # + + + + +
.
.
.
Die Zellwerte sind immer unterschiedlich!
Soooo, wenn das erledigt ist müssen noch die Zeilen in Spalten umgewandelt werden. Sodass alle Werte einer Zeile untereinander in einer Spalte stehen, ohne Leerzellen dazwischen.
Die Werte der Zeilen sind auf c.a. 30 Zellen verteilt und immer unterschiedlich.
Viel Spaß beim Knobeln! Ich hoffe ihr schafft das!
Im aktuellen Fall geht es um Bilder... Die Bilder sind in Zeilen per Link abgespeichert. Ich brauch aber die Bilder, die per URL in den Zeilen gespeichert sind (mit ab und zu Leerzellen dazwischen) in Spalten sortiert und ohne Leerzeilen dazwischen.
vielleicht seit ihr ja bisschen schlauer als ich ... Ich knobel seit Wochen an einem Problem, finde den Fehler aber nicht und kann es auch nicht lösen ...
Worum geht es?
Ich baue gerade an einem Konzept zur Verbesserung der Datenverarbeitung im E-Business Bereich.
Grundproblem:
Legende: # = Zelle hat Wert / +=Leerzelle
Ist-Zustand:
Zeilen der Form
A1 B2 C1 D1 E1 F1 G1 H1 I1 ...
# # # + # + + + #
# + + + # + # # +
.
.
.
Sollzustand:
A1 B2 C1 D1 E1 F1 G1 H1 I1 ...
# # # # # + + + +
# # # # + + + + +
.
.
.
Die Zellwerte sind immer unterschiedlich!
Soooo, wenn das erledigt ist müssen noch die Zeilen in Spalten umgewandelt werden. Sodass alle Werte einer Zeile untereinander in einer Spalte stehen, ohne Leerzellen dazwischen.
Die Werte der Zeilen sind auf c.a. 30 Zellen verteilt und immer unterschiedlich.
Viel Spaß beim Knobeln! Ich hoffe ihr schafft das!
Im aktuellen Fall geht es um Bilder... Die Bilder sind in Zeilen per Link abgespeichert. Ich brauch aber die Bilder, die per URL in den Zeilen gespeichert sind (mit ab und zu Leerzellen dazwischen) in Spalten sortiert und ohne Leerzeilen dazwischen.
Re: Leerzellen löschen! Nicht Zeilen! Spezielleres Problem!
Hallo,
1) den Bereich markieren -> ausschneiden
2) in Zelle A1: ->Bearbeiten->Einfügen als... mit der Option "Transponieren"
3) jede Spalte (einzeln) sortieren
1) den Bereich markieren -> ausschneiden
2) in Zelle A1: ->Bearbeiten->Einfügen als... mit der Option "Transponieren"
3) jede Spalte (einzeln) sortieren
Gruß,
mikeleb
mikeleb
-
- Beiträge: 3
- Registriert: Mo, 11.01.2021 14:02
Re: Leerzellen löschen! Nicht Zeilen! Spezielleres Problem!
Servus, danke für die schnelle Antwort...
Das Transponieren kenn ich schon. Mir gehts eher darum die einzelnen Zellen raus zu bekommen ...
Das hab ich noch nicht hinbekommen...
Das Transponieren kenn ich schon. Mir gehts eher darum die einzelnen Zellen raus zu bekommen ...
Das hab ich noch nicht hinbekommen...
Re: Leerzellen löschen! Nicht Zeilen! Spezielleres Problem!
Hallo
wenn ich das richtig lese, möchtest du Zeile für Zeile horizontal sortieren.
Das geht wenn du im Menü >Daten<>Sortieren< unter Optionen die Ausrichtung der Sortierung änderst.
Das müsstest du dann Zeile für zeile einzeln "anstoßen"
Gruß Holger
wenn ich das richtig lese, möchtest du Zeile für Zeile horizontal sortieren.
Das geht wenn du im Menü >Daten<>Sortieren< unter Optionen die Ausrichtung der Sortierung änderst.
Das müsstest du dann Zeile für zeile einzeln "anstoßen"
Gruß Holger
-
- Beiträge: 3
- Registriert: Mo, 11.01.2021 14:02
Re: Leerzellen löschen! Nicht Zeilen! Spezielleres Problem!
Hallo Holger,
darauf bin ich erst garnicht gekommen! Vielen Dank!
Jetzt habe ich die Zeilen sortiert...
Aber das Problem was jetzt auftritt ist, dass ich die Werte zwar jetzt dank dir zum Anstoßen bringen kann.
Die Werte in den Zellen dürfen aber von der Anordnung nicht verändert werden.
Ist verständlich was ich meine ?
LG und vielen Dank
Alex
darauf bin ich erst garnicht gekommen! Vielen Dank!
Jetzt habe ich die Zeilen sortiert...
Aber das Problem was jetzt auftritt ist, dass ich die Werte zwar jetzt dank dir zum Anstoßen bringen kann.
Die Werte in den Zellen dürfen aber von der Anordnung nicht verändert werden.
Ist verständlich was ich meine ?
LG und vielen Dank
Alex
Re: Leerzellen löschen! Nicht Zeilen! Spezielleres Problem!
Hallo AlexDie Werte in den Zellen dürfen aber von der Anordnung nicht verändert werden.
Ist verständlich was ich meine ?
eigentlich nicht....
Wenn die Spalten zueinander "gehören" dann stimmt dein gewünschter "Sollzustand" nicht.
Entweder du sortierst Zeile für Zeile dann sind alle Zeilen (aufsteigend) sortiert (Siehe gewünschter Sollzustand)
oder
du markierst erst beide Zeilen und entscheidest dann welche Zeile die Sortierung vorgeben soll.
Dann bleibt die Spaltenweise Zuordnung bestehen aber dein Sollzustand kann nicht erreicht werden, oder ich habe es nicht verstanden was du möchtest
Gruß Holger
Re: Leerzellen löschen! Nicht Zeilen! Spezielleres Problem!
Nachtrag:Die Zellwerte sind immer unterschiedlich!
Soooo, wenn das erledigt ist müssen noch die Zeilen in Spalten umgewandelt werden. Sodass alle Werte einer Zeile untereinander in einer Spalte stehen, ohne Leerzellen dazwischen.
Ist die Liste nach einer Zeile sortiert, dann gibt es dort keine Leerzellen mehr.
Das "drehen" der Liste lässt sich einfach erledigen:
Markiere die Liste und wähle kopieren (Strg+C)
markiere eine leere Zelle unter der die kopierte Liste passt und wähle per Rechtsklick > Inhalte einfügen > [x] Transportieren > OK
Re: Leerzellen löschen! Nicht Zeilen! Spezielleres Problem!
Mein Vorschlag wäre ja zur Verbesserung der Datenverarbeitung ein passendes Tool zu verwenden.1a-zuhause hat geschrieben: ↑Mo, 11.01.2021 14:24 Servus Community,
vielleicht seit ihr ja bisschen schlauer als ich ... Ich knobel seit Wochen an einem Problem, finde den Fehler aber nicht und kann es auch nicht lösen ...
Worum geht es?
Ich baue gerade an einem Konzept zur Verbesserung der Datenverarbeitung im E-Business Bereich.
Listen sind eigentlich ein typisches Lisp-Konstrukt, das man aber in allen Modernen Programmiersprachen wie z.B. Python findet. Listen in eine Tabelle zu packen ist ein origineller Ansatz zur Verbesserung der Datenverarbeitung...
Aber mal ernsthaft:
Als direkter Ansatz bietet sich ein Makro an, das1a-zuhause hat geschrieben: ↑Mo, 11.01.2021 14:24
Grundproblem:
Legende: # = Zelle hat Wert / +=Leerzelle
Ist-Zustand:
Zeilen der Form
A1 B2 C1 D1 E1 F1 G1 H1 I1 ...
# # # + # + + + #
# + + + # + # # +
Sollzustand:
A1 B2 C1 D1 E1 F1 G1 H1 I1 ...
# # # # # + + + +
# # # # + + + + +
Die Zellwerte sind immer unterschiedlich!
genau macht, was Du beschreibst. Jede Zeile durcharbeiten und bei leeren Zellen Inhalte von weiter rechts kopieren.
Meine Methode der Wahl, wenn man das dauernd in der Tabellenkalkulation machen muss.
Für gelegentliche Fälle würde ich (erstmal ein Backup machen), dann die Tabelle nach csv exportieren und sicherstellen, dass mein Trennzeichen nicht IN Zellen vorkommt - meist nehme ich Tab.
In einem Editor wie Notepad++ aufeinanderfolgende Tabs durch jeweils einen einzelnen Ersetzen - geht auch mit regulären Ausdrücken im Writer.
Modifizierte csv-Datei wieder in Calc laden, dabei darauf achten, dass beim Import nichts durch die automatische Typerkennung geändert wird.
Mfg, Jörn
PS: Als Kombination meiner beiden Kommentare könte man auf die Idee kommen ein Python Makro zu schreiben, dass jede Tabellenzeile in eine Liste kopiert, dann die Originalzeile leert und die Liste dann in die Zeile zurückkopiert...
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
Re: Leerzellen löschen! Nicht Zeilen! Spezielleres Problem!
Im ersten Post stand noch, dass die Zellwerte immer unterschiedlich sein können.
Statt
# # # + # + + + #
# + + + # + # # +
ist der Ausgangszustand also z B.
a x c + f + + + f
s + + + f + d a +
und es sollen nur die + Zeichen (aka leere Zellen) nach rechts und die anderen (irgendwie gefüllten) Zellinhalte nach links - wenn ich das richtig verstehe
Mfg, Jörn
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
Re: Leerzellen löschen! Nicht Zeilen! Spezielleres Problem!
Welcher Fehler tritt auf?finde den Fehler aber nicht
z.B.:Grundproblem:
Legende: # = Zelle hat Wert / +=Leerzelle
Ist-Zustand:
Zeilen der Form
A1 B2 C1 D1 E1 F1 G1 H1 I1 ...
# # # + # + + + #
# + + + # + # # +
.
.
.
Sollzustand:
A1 B2 C1 D1 E1 F1 G1 H1 I1 ...
# # # # # + + + +
# # # # + + + + +
.
-Zellbereich markieren, kopieren
-als unformatierten Text in Writer einfügen
-doppelte Tabulatoren suchen und durch einfache Tabulatoren ersetzen
-einfache Tabulatoren suchen und durch SEmikolon ersetzen
-alles markieren, kopieren
-in Calc einfügen
-per "Text in Spalten" wieder auf Spalten aufteilen
markieren, kopieren und transponiert einfügenSoooo, wenn das erledigt ist müssen noch die Zeilen in Spalten umgewandelt werden. Sodass alle Werte einer Zeile untereinander in einer Spalte stehen, ohne Leerzellen dazwischen.
Gruß
Stephan
Re: Leerzellen löschen! Nicht Zeilen! Spezielleres Problem!
Hallo
Nun ich machs kurz, Zellbereich Selektieren und folgendes ausführen :
vorher musst du den Code in den Pfad <deine Benutzerkonfiguration>/Scripts/python/<Name-deiner-Wahl>.py speichern.
achte bitte darauf das sämtliche Einrückungen so wie hier in der Python-datei ankommen.
Nun ich machs kurz, Zellbereich Selektieren und folgendes ausführen :
Code: Alles auswählen
from itertools import zip_longest
def remove_empty_and_transpose(*_):
doc = XSCRIPTCONTEXT.getDocument()
sel = doc.CurrentSelection
sheet = sel.Spreadsheet
cursor = sheet.createCursorByRange(sel)
cursor.gotoStart()
out = []
for i in range(sel.Rows.Count):
row = sel[i,:]
row_out = []
for datablock in row.queryContentCells(15):
row_out.extend(datablock.DataArray[0])
out.append(row_out)
size = max(len(data) for data in out)
out = list(map(list,zip_longest(*out,fillvalue='')))
sel.clearContents(1+2+4+8)
cursor.collapseToSize(len(out[0]), size)
cursor.setDataArray(out)
achte bitte darauf das sämtliche Einrückungen so wie hier in der Python-datei ankommen.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)