❤️ 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. 🌱


❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

verketten mehrer Spalten

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
christian99x
Beiträge: 15
Registriert: Do 27. Okt 2011, 19:04

verketten mehrer Spalten

Beitrag von christian99x » So 23. Aug 2015, 13:01

Hallo zusammen,

ich habe in Calc mehrere Spalten mit Zeichenketten und ich möchte nun jede Zelle einer Spalte mit allen weiteren Spalten verketten. Also konkret:

A1 B1 C1
A2 B2 C2
A3 B3 C3

In einer weiteren Spalte möchte ich nun die Strings verketten:

A1B1C1
A1B1C2
A1B1C3
A1B2C1
....
...
A3B3C3

Vielen Dank schon mal für Hilfestellung.....

christian99x
Beiträge: 15
Registriert: Do 27. Okt 2011, 19:04

Re: verketten mehrer Spalten

Beitrag von christian99x » So 23. Aug 2015, 13:52

ja, richtig, aber bei VERKETTEN werden die Werte nur zeilenweise verkettet. Ich möchte erreichen, dass JEDER Wert aus JEDER Spalte mit JEDEM anderen Wert verkettet wird.

Dein Vorschlag führt zu :

A1B1C1
A2B2C2
A3B3C3

....oder?

Benutzeravatar
miesepeter
* LO-Experte *
Beiträge: 2157
Registriert: So 19. Dez 2010, 18:16
Wohnort: Bayern

Re: verketten mehrer Spalten

Beitrag von miesepeter » So 23. Aug 2015, 16:11

Da es Texte sind, kannst du die ja mit dem kaufmännischen UND-Zeichen verbinden, z.B.

Code: Alles auswählen

=$A$1&$B$1&C1
Wenn du die Formel runterziehst, bleiben die ersten beiden Elemente gleich, das dritte wird jeweils "addiert". Wenn du's bei allen machen möchtest und dazu noch Duplikate vermeiden, wäre möglicherweise eine Matrix-Formel o.ä. hilfreich. Dazu reicht mein Wissen allerdings nicht...
Ciao

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

Re: verketten mehrer Spalten

Beitrag von karolus » Mo 24. Aug 2015, 00:46

Hallo

Hier gibts ein kleines Addin, wenn du es installierst kannst du mit zB.

Code: Alles auswählen

=PYJOIN(A1:D100;"__")
sämtliche Zellen von A1bis D100 verketten.
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

christian99x
Beiträge: 15
Registriert: Do 27. Okt 2011, 19:04

Re: verketten mehrer Spalten

Beitrag von christian99x » Mo 24. Aug 2015, 11:46

Danke für die Antworten!

@miesepeter:
Diese Möglichkeit ist mir auch eingefallen und ich habe auch an eine Matixfunktion gedacht aber auch mein Wissen reicht dazu nicht!

@karolus:
Super Tipp zum Addon, nur habe ich damit ALLE Zellen in EINER verkettet. Das hilft mir leider nicht, dann ich benötige als Ergebnis alle Kombinationen in einzelnen Zellen

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

Re: verketten mehrer Spalten

Beitrag von karolus » Mo 24. Aug 2015, 15:12

Hallo

Dir ist hoffentlich klar, das bei drei Spalten mit je 10 Texten, 1000 verschiedene Kombinationen möglich sind ?!
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

christian99x
Beiträge: 15
Registriert: Do 27. Okt 2011, 19:04

Re: verketten mehrer Spalten

Beitrag von christian99x » Mo 24. Aug 2015, 15:49

Naja, 10^3 ergibt nun mal 1000 - da kann ich leider nix dafür.....;-)

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

Re: verketten mehrer Spalten

Beitrag von karolus » Mo 24. Aug 2015, 17:45

Hallo

Nagut, speichere den Code in eine Datei im Pfad <dein LibreOffice-Benutzerverzeichnis>/Scripts/python/kombi.py, ....

....markiere den dreispaltigen Bereich und führe die Funktion aus.

Code: Alles auswählen

def kombiniere():    
    doc = XSCRIPTCONTEXT.getDocument()
    sel = doc.CurrentSelection
    sheet = sel.Spreadsheet
    address = sel.RangeAddress
    nextCol = address.EndColumn +1
    row = address.StartRow
    a, b, c = zip(*sel.DataArray)
    out = []
    for first in a:
        for second in b:
            for third in c:
                out.append(('%s%s%s' %(first,second,third),))

    coords = (nextCol,
              row,
              nextCol ,
              row +len(out)-1)

    sheet.getCellRangeByPosition(*coords).setDataArray(tuple(out))
 
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)


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.



Antworten