BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Reihenfolge beim Verketten beeinflussen

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
son-goku
Beiträge: 2
Registriert: Fr 14. Dez 2018, 18:45

Reihenfolge beim Verketten beeinflussen

Beitrag von son-goku » Fr 14. Dez 2018, 19:31

Frage: Gibt es eine Möglichkeit, die Reihenfolge der Einzelelemente beim Verketten von Zeichenketten nachträglich zu beeinflussen bzw. vorzugeben?

Beispiel: Ich habe folgende Tabelle (siehe Anhang), um Modellbezeichnungen durch Verketten von Konstanten in einer Bestimmten Reihenfolge zu generieren:
Tabelle.png
Tabelle.png (11.2 KiB) 2466 mal betrachtet

Um eine Modellbezeichnung zu generieren, schreibe ich z. B.

Code: Alles auswählen

=VERKETTEN(B1;B3;B4;B6;B7)
Angenommen, ich generiere sehr viele solcher Modellbezeichnungen und möchte am Ende dann doch lieber die Farbangabe vor der Gruppenangabe stehen haben – wie kann ich das machen, ohne alle Formeln neu tippen zu müssen?
Ideal wäre es, wenn ich die gewünschte Reihenfolge einfach in Zellen eintragen kann (z. B. Position Typ: 1, Position Farbe: 2, Position Gruppe: 3).

Zusatzinfo: Nicht in jeder Modellbezeichnung sollen alle Felder benutzt werden müssen, es gibt also beispielsweise auch Modellnummern ganz ohne Farbangabe.
Dateianhänge
Tabelle.ods
(9.48 KiB) 168-mal heruntergeladen

Lupo
Beiträge: 279
Registriert: Do 11. Okt 2012, 14:22

Re: Reihenfolge beim Verketten beeinflussen

Beitrag von Lupo » Sa 15. Dez 2018, 06:53

1.

=VERKETTEN(B1;B3;B4;B6;B7) schreibt sich kürzer so: =B1&B3&B4&B6&B7

(ist also nicht nur unflexibel, sondern auch unnötig)

2.

=VERBINDEN(;;WENN({1;0;1;1;0;1;1;0};B1:B8;""))
{=VERBINDEN(;;WENN(X1:X8;B1:B8;""))} mit Nr. 5
{=VERBINDEN(;;WENN(INDEX(AA1:AZ8;;Y1);B1:B8;""))} mit Nr. 5

erlauben Dir bedingte Verkettungen mit Konstante, fixem Bezug oder variablem Bezug, jedoch nicht mit formelseitiger Anders-Sortierung.

3.

{=VERBINDEN(;;VERSCHIEBUNG(B1;{1;3;7;6;4}-1;))} mit Nr. 5

erlaubt auch Anders-Sortierung am Beispiel des Konstantenarrays, welches Du ebenfalls durch Bezüge (s. 2) ersetzen kannst.
MfG Lupo - xxcl.de Win10ProLO6062

mikele
Beiträge: 1642
Registriert: Mo 1. Aug 2011, 20:51

Re: Reihenfolge beim Verketten beeinflussen

Beitrag von mikele » Sa 15. Dez 2018, 13:56

Hallo,
du kannst auch so etwas nutzen, wenn du die Bezeichnungen direkt eintragen möchtest:

Code: Alles auswählen

=TEXTKETTE(SVERWEIS({"Typ 1"."Gruppen-Separator"."Gruppe 2"."Farb-Separator"."Farbe 1"};A1:B8;2;0))
oder (einfacher, da nur die gewünschten Zeilen angegeben werden)

Code: Alles auswählen

=TEXTKETTE(INDEX(B1:B8;{1.3.5.6.7}))
Letztere Funktion muss als Matrixfunktion mit Shift-Strg-Enter abgeschlossen werden.
Gruß,
mikele

Lupo
Beiträge: 279
Registriert: Do 11. Okt 2012, 14:22

Re: Reihenfolge beim Verketten beeinflussen

Beitrag von Lupo » Sa 15. Dez 2018, 14:27

Hinweis zu TEXTKETTE:

Excel und LO kennen sie, GDocs aber nicht. Daher ist VERBINDEN/TEXTVERKETTEN/TEXTJOIN ein wenig migrationsfreudiger.
MfG Lupo - xxcl.de Win10ProLO6062

son-goku
Beiträge: 2
Registriert: Fr 14. Dez 2018, 18:45

Re: Reihenfolge beim Verketten beeinflussen

Beitrag von son-goku » Mi 19. Dez 2018, 20:54

Danke schonmal für eure Antworten!
Aber ich glaube, das löst mein Problem noch nicht ... wobei es auch sein kann, dass mir nur gedanklich ein Schritt fehlt (ich muss zugeben, dass Matrixformeln für mich neu sind). :D

Ich meine, das Beispiel mit
{=VERBINDEN(;;VERSCHIEBUNG(B1;{1;3;7;6;4}-1;))} mit Nr. 5
verstanden zu haben. Aber was mir das bezüglich meiner Problemstellung bringt, ist mir nicht klar (auch nicht mit Zellbezügen statt Konstanten). Ich müsste dann ja immer noch für jede einzelne Modellbezeichnung die Reihenfolge einzeln festlegen, oder übersehe ich da was?

Beispiel: Ich habe die 3 Modellbezeichnungen

Code: Alles auswählen

N.a/1
V.a/2
N/1
und möchte nun im Nachhinein erreichen, dass daraus

Code: Alles auswählen

N/1.a
V/2.a
N/1
wird, indem ich irgendwo festlege, dass in allen Formeln zum Generieren der Modellbezeichnungen das Feld für Farbe mit dem Feld für die Gruppe in der Reihenfolge vertauscht wird. Was ich bräuchte, wäre meines Erachtens eine Permutation, die in jeder Modellbezeichnungs-Formel verwendet wird und deren Parameter ich global ändern kann.

balu
Beiträge: 370
Registriert: Mi 1. Jun 2011, 16:21

Re: Reihenfolge beim Verketten beeinflussen

Beitrag von balu » Do 20. Dez 2018, 15:36

Hallo son-goku,

mein LO ist eine 5.1.5.2 Version, und die kennt weder TEXTKETTE noch VERBINDEN, also kann ich zu den hier vorgeschlagenen Formeln nix sagen.

GANZ WICHTIG!
DAS AUSFÜHREN VON MAKROS MUSST DU ERLAUBEN!
DENN ANSONSTEN FUNKTIONIERT MEINE DATEI NICHT!

Gibt es eine Möglichkeit, die Reihenfolge der Einzelelemente beim Verketten von Zeichenketten nachträglich zu beeinflussen bzw. vorzugeben?
Das sind jetzt aber zwei verschiedene Bedingungen.
- Vorzugeben => Ja
- Nachträglich zu beeinflussen => wohl auch Ja, ABER
ABER bei Formeln, genauer gesagt Funktionen, ist das keine gute Idee!
Selbst =VERKETTEN() gibt wohl einen Text aus, die sich aber wie alle Funktionen verhalten. Ändert sich der Inhalt einer Bezugszelle, so ändern sich ALLE Funktionen die auf diese Bezugszelle zugreifen.

Funktionen sind also nicht Statisch, sondern Dynamisch. Sie reagieren auf irgendwelche Änderungen. Und das kannst Du hier nicht gebrauchen. Du brauchst also eine Makrolösung.

Zur Info, in meiner LO Version funktioniert das Makro. Wie es in der 6er Linie aussieht, keine Ahnung, da ich die nicht habe.

Ohne eine gewisse menge an Handarbeit wirst Du selbst bei meinem Makrovorschlag nicht drum herum kommen. Aber das hält sich eigentlich in Grenzen.

Also, was kann ich dir anbieten?

Im Zellbereich C1 bis C8 gibst Du Zahlen von 1 bis maximal 8 ein. Auch wenn Du vielleicht nicht bis 8 brauchst, so besteht halt die Möglichkeit dazu.

Angenommen Du willst nur 5 Positionen verwenden, so liegt es dir vollkommen frei die Zahlen 1 bis 5 im genannten Zellbereich ganz individuell einzugeben. Die Reihenfolge spielt keine Rolle. Lediglich solltest Du nur aufpassen das keine Zahl größer 5 ist, wenn Du nur 5 Positionen auswählen willst.

Hast Du nun die 5 Zahlen eingegeben, oder einfach ein vorgegebenes Beispiele aus dem Zellbereich D1:I8 nach C1:C8 kopiert, drükst Du auf den Button Modellbezeichnung erstellen und schon wird eine Modellbezeichnung in die nächste Freie Zelle in der Spalte B eingetragen (das wäre also ab B14 bei einer "Leeren" Datei).

Das wars eigentlich auch schon.

Der Button Zellbereich C1 bis C8 löschen räumt diesen Zellbereich auf, und Du kannst selber nach belieben dort neue Zahlen eingeben.

Mal weiter angenommen, Du hast das Beispiel aus dem Zellbereich E1:E7 nach C1:C7 kopiert, und auf den Button Modellbezeichnung erstellen geklickt, dann wird ja in die nächste freie Zelle der Spalte B die Modellbezeichnung eingetragen. Jetzt könntest Du daher gehen und die 1 aus C1 löschen und in C2 eintragen. Und wieder ein klick auf den genannten Button, und schon hast Du eine andere Modellbezeichnung in der nächsten freien Zelle in der Spalte B.


Ich weiss, für einen Anfänger wie Du es bist gleich mit nem Makro konfrontiert zu werden, ist nicht so ohne. Und das Du im Zellbereich C1:C8 selber noch Hand anlegen musst, ist vielleicht auch nicht das was Du wolltest. Aber wenn ich dich bis jetzt richtig verstanden habe, ist das momentan der einzige Weg um ans Ziel zu kommen.

Wobei ich noch ein Verständigungsproblem habe.
Gibt es eine Möglichkeit, die Reihenfolge der Einzelelemente beim Verketten von Zeichenketten nachträglich zu beeinflussen ...?
Ich bin mir nicht sicher was das genau heißen soll.
Willst Du schon vorgenommene Modellbezeichnungen nachträglich ändern, oder was genau?

Eine nachträgliche Änderung von schon existierenden Modellbezeichnungen ist wohl irgendwie möglich, aber das habe ich jetzt noch nicht berücksichtigt, da mir dafür weitere Informationen fehlen.


Das solls jetzt erstmal gewesen sein.



Gruß
balu
Dateianhänge
Reihenfolge beim Verketten beeinflussen_MAKRO-VERSION.ods
(13.42 KiB) 134-mal heruntergeladen

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
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