Text aus tabelle1.A1 B1 mal in tabelle2.A, dann tabelle1.A2 B2 mal in tabelle2.A ausgeben usw.

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Text aus tabelle1.A1 B1 mal in tabelle2.A, dann tabelle1.A2 B2 mal in tabelle2.A ausgeben usw.

Re: Text aus tabelle1.A1 B1 mal in tabelle2.A, dann tabelle1.A2 B2 mal in tabelle2.A ausgeben usw.

von Karolus » Do, 23.03.2017 11:54

Hallo

Lösung mit python für libreoffice >= Version 5.1

Selektiere den zweispaltigen Ausgangsbereich und starte:

Code: Alles auswählen

def repeat_entries():
    calcdoc = XSCRIPTCONTEXT.getDocument()
    sel = calcdoc.CurrentSelection
    out = []
    for entry, count in sel.DataArray:
        out.extend((entry,)*int(count))

    out = tuple(zip(out))
    target = calcdoc.Sheets.getByName('Ausgabe')
    target[ :len(out), 0].DataArray = out

Variante für AOO und LO allgemein:

Code: Alles auswählen

def repeat_entries():
    calcdoc = XSCRIPTCONTEXT.getDocument()
    sel = calcdoc.CurrentSelection
    out = []
    for entry, count in sel.DataArray:
        out.extend((entry,)*int(count))

    out = tuple(zip(out))
    target = calcdoc.Sheets.getByName('Ausgabe')
    target.getCellRangeByPosition(0, 0, 0, len(out)-1 ).DataArray = out

Re: Text aus tabelle1.A1 B1 mal in tabelle2.A, dann tabelle1.A2 B2 mal in tabelle2.A ausgeben usw.

von Karolus » Do, 23.03.2017 11:42

Hallo
Lösung in zwei Schritten ohne Makro:
  • 1) nimm in Ausgabe.A1 die Formel =WIEDERHOLEN(Eingabe.A1 & ZEICHEN( 13); Eingabe.B1) und ziehe die Formel nach unten so weit wie nötig.
  • 2. Markiere den Bereich mit den Formeln und gehe zu →Daten→Text in Spalten (ohne irgendwelche Trennzeichen) →→ok

Nach oben