🍀 Das LibreOffice Forum braucht HEUTE Ihre Hilfe! 🍀
❤️ Spenden Sie jetzt und sichern Sie die Zukunft unseres LibreOffice-Forums ❤️
Ihre Spende hilft, die Community offen, werbefrei (bei Registrierung) und lebendig zu halten. Vielen lieben Dank!

🙏 DANKE >> << DANKE 🙏

>> Das LibreOffice-Forum lebt von Ihnen – und von vielen Experten, die freiwillig und kostenlos ihr Wissen teilen.<<
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

[gelöst] Pro User und Funktion eine Zeile - möglichst schnell/einfach?

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
hylli
* LO-Experte *
Beiträge: 297
Registriert: Sa 19. Mär 2011, 19:00

[gelöst] Pro User und Funktion eine Zeile - möglichst schnell/einfach?

Beitrag von hylli » Mo 9. Mai 2022, 15:33

In der anhängenden Datei findet man auf der Tabelle "Export" die Ausgangslage, d.h. insgesamt 4 Spalten:
- UserID
- Nachname
- Vorname
- Funktionen

In der Spalte Funktionen sind 1 bis X dem User zugeordneten Funktionen durch Komma+2 Leerzeichen getrennt dargestellt.

Damit ich die Tabelle für meine Zwecke weiter verarbeiten kann, sollte pro User und Funktion jeweils eine Zeile vorhanden sein, wie in der Tabelle "Wunschergebnis" zu sehen.

"Inspiriert" durch diesen Wiki-Eintrag...
http://www.ooowiki.de/SuchenUndErsetzen ... .2BAPw-gen
...gehe ich aktuell diesen umständlichen Weg:
  1. Tabelle kopieren und im Format RTF (Richt Text Format) in Writer einfügen
  2. In Writer mit der Funktion Suchen&Ersetzen den Feldtrenner ", " (Komma + zwei Leerzeichen) ersetzen durch "\n" (=Zeilenumbruch). Nun stehen die Funktionen innerhalb einer Zelle sauber untereinander.
  3. Die in Writer so angepasste Tabelle wieder kopieren und wiederum im Format RTF (Richt Text Format) in Calc einfügen.
  4. Nun muss ich pro Funktion und Benutzer eine Zeile in der Tabelle vorsehen bzw. entsprechende Anzahl Zeilen pro Benutzer erstellen.
  5. Die Zelle mit den nun untereinander stehenden Funktionen kopiere ich nun in die Zwischenablage, füge sie in einem Texteditor ein.
  6. Anschließend kopiere ich die Funktionen im Editor wieder in die Zwischenablage und füge diese als unformatierten Text wieder in die Tabellenkalkulation ein, so dass pro Funktion eine Zeile/Zelle verwendet wird.
  7. Zu guter letzt kopiere ich den jeweiligen Benutzer in der Tabellenkalkulation und füge diesen so oft ein, wie zugeordnete Funktionen vorhanden sind.
Die Frage ist:
Geht das irgendwie einfacher, schneller oder gar mit Funktionen?

Hylli
Pro_User_und_Funktion_eine_Zeile.ods
(11.31 KiB) 89-mal heruntergeladen
Zuletzt geändert von hylli am Di 10. Mai 2022, 13:07, insgesamt 1-mal geändert.
Geschäftlich: LibreOffice 7.2.x(als Citrix-Anwendung)
Privat: LibreOffice 7.3.x unter Linux Mint Cinnamon 64bit (jeweils aktuelle Version)

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2712
Registriert: Fr 10. Dez 2010, 10:01

Re: Pro User und Funktion eine Zeile - möglichst schnell/einfach?

Beitrag von karolus » Mo 9. Mai 2022, 18:06

Hallo

Code: Alles auswählen

def normalize_data(*_):
    doc = XSCRIPTCONTEXT.getDocument()
    sel = doc.CurrentSelection
    data = sel.DataArray
    out = []
    for uid, nachname, vorname, functions in data:
        for function in functions.split(",  "):
            out.append([uid, nachname, vorname, function])
    undo = doc.getUndoManager()
    undo.enterUndoContext("expand_functions")
    cursor = sel.Spreadsheet.createCursorByRange(sel)
    cursor.collapseToSize(len(out[0]), len(out)) 
    cursor.DataArray = out
    undo.leaveUndoContext()
Pro_Funktion_eine_Zeile_python.ods
(10.59 KiB) 75-mal heruntergeladen
Selektiere den Bereich ( hier A2:D4 ) und: →Makro→Macros ausführen→Pro_Funktion_eine_Zeile_python.ods →→opti→normalize_data
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

hylli
* LO-Experte *
Beiträge: 297
Registriert: Sa 19. Mär 2011, 19:00

Re: Pro User und Funktion eine Zeile - möglichst schnell/einfach?

Beitrag von hylli » Di 10. Mai 2022, 10:02

Wow!!! Was so wenige Zeilen Code bewirken können.

Funktioniert tadellos!

Damit wird der Umgang mit "diesen" Exporten wieder erträglicher, vielen Dank @karolus.

Hylli
Geschäftlich: LibreOffice 7.2.x(als Citrix-Anwendung)
Privat: LibreOffice 7.3.x unter Linux Mint Cinnamon 64bit (jeweils aktuelle Version)

hylli
* LO-Experte *
Beiträge: 297
Registriert: Sa 19. Mär 2011, 19:00

Re: [gelöst] Pro User und Funktion eine Zeile - möglichst schnell/einfach?

Beitrag von hylli » Di 10. Mai 2022, 13:08

Ich setze hier mal auf gelöst, natürlich dürfen aber gerne weitere Vorschläge gemacht werden.

Hylli
Geschäftlich: LibreOffice 7.2.x(als Citrix-Anwendung)
Privat: LibreOffice 7.3.x unter Linux Mint Cinnamon 64bit (jeweils aktuelle Version)


An alle, die das LibreOffice-Forum gern nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das laufende.
Einfach per Kreditkarte oder PayPal. Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.



❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten