[gelöst] INDIREKT(),aber für Funktionen (nicht für Adressen)

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

T aus B
*
Beiträge: 16
Registriert: Di, 16.02.2010 18:16

[gelöst] INDIREKT(),aber für Funktionen (nicht für Adressen)

Beitrag von T aus B »

Hallo!

(mein erstes Posting hier :D )

Ich benutze OOo 3.1 und habe in einer Zelle einen Textstring dieser Art: "4;25;45;9;5;12". Ich suche einen Weg diesen Textstring wie eine "Argumentenkette" innerhalb einer Funktion zu interpretieren. Konkret:
WAHL(Index;"Argumentenkette"), d.h. ich möchte mit einem Index gezielt die z.B. 3. oder 5. Zahl auslesen.

Meine (vermutlich unzulänglichen) Erkenntnisse dazu sind:
* die INDIREKT() kann nur Adressangaben aber keine Funktionen (oder auch Bereiche) deuten
* via FINDE(), TEIL(), LÄNGE() etc. wäre das Problem vermutlich lösbar, der Weg scheint mir aber kompliziert und "unelegant" zu sein (die Zahlen bestehen nicht immer aus zwei Ziffern)
* Habe lange im OOo Wiki nach Lösungsansätzen gesucht, bin aber leider nicht fündig geworden

Restriktion:
* ein allg. Datenimport, der den Text gleich in verschiedene Zellen zerlegt kommt nicht infrage

Gibt es einen einfachen Weg dieses Problem per Formel zu lösen?
Kann man einen String in einen Vektor bzw. eine Matrix umwandeln?

Gruß
TausB
Zuletzt geändert von T aus B am Do, 18.02.2010 11:26, insgesamt 1-mal geändert.
OOo 3.1 unter Ubuntu 9.10
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: INDIREKT(), aber für Funktionen (nicht für Adressen)

Beitrag von lorbass »

Willkommen im Forum :)
T aus B hat geschrieben:Gibt es einen einfachen Weg dieses Problem per Formel zu lösen?
Im Prinzip bist du mit den Text-Funktionen SUCHEN(), FINDEN() & Co. auf der richtigen Spur. Wenn dir das aber zu unelegant ist, bleibt dir der Weg, selbst eine Funktion WAHL(Index;"Argumentenkette") zu schreiben.

Gruß
lorbass
T aus B
*
Beiträge: 16
Registriert: Di, 16.02.2010 18:16

Re: INDIREKT(), aber für Funktionen (nicht für Adressen)

Beitrag von T aus B »

Hallo lorbass,
Wenn dir das aber zu unelegant ist, bleibt dir der Weg, selbst eine Funktion WAHL(Index;"Argumentenkette") zu schreiben.
Zugegeben: elegant wäre das :D !
... aber ich meinte auch einfach 8)

Vielleicht noch andere Lösungsansätze?
OOo 3.1 unter Ubuntu 9.10
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: INDIREKT(), aber für Funktionen (nicht für Adressen)

Beitrag von Karolus »

Hallo
Eine eigene Funktion dafür ist schnell geschrieben:

Code: Alles auswählen

function auswahl( index , sstring)
astring() = split( sstring, ";")
auswahl = astring( index -1 )
end function
Aufrufsyntax in Calc
=AUSWAHL( index oder zelladresse mit dem index ; zelladresse des Strings )
falls kein Text sondern ein Wert rauskommen soll:
=WERT(AUSWAHL( index oder zelladresse mit dem index ; zelladresse des Strings ))

Gruß Karo
LO25.2… debian 13( trixie ) auf Raspberry5 8GB (ARM64)
LO25.8… flatpak debian 13( trixie ) auf Raspberry5 8GB (ARM64)
T aus B
*
Beiträge: 16
Registriert: Di, 16.02.2010 18:16

Re: INDIREKT(), aber für Funktionen (nicht für Adressen)

Beitrag von T aus B »

Hallo Karo,
Karolus hat geschrieben: Eine eigene Funktion dafür ist schnell geschrieben:
Danke, die Funktion sieht wirklich übersichtlich aus. :D

Benutzerdefinierte Funktionen haben i.a. für mich einen kleinen Nachteil: Man muß immer darauf achten, daß sie nicht verloren gehen (Neuinstallation) oder weitergegeben werden (andere Nutzer). Ich bevorzuge d.h. i.a. eine Lösung mit direkt verfügbaren Boardmitteln.

Bitte nicht als Kritik verstehen, Deine Antwort erfüllt exakt ihren Zweck.

Was mir gerade einfällt: wenn ich die benutzerdefinierten Funktionen in das Dokument speichere, sollten doch meine Sorgen (solange das Dokument existiert) nicht zum Tragen kommen - korrekt?

Grüße
TausB
OOo 3.1 unter Ubuntu 9.10
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: INDIREKT(), aber für Funktionen (nicht für Adressen)

Beitrag von Karolus »

Hallo
Was mir gerade einfällt: wenn ich die benutzerdefinierten Funktionen in das Dokument speichere, sollten doch meine Sorgen (solange das Dokument existiert) nicht zum Tragen kommen - korrekt?
Ja, korrekt - ist aber nur sinnvoll solange die Funktion nur in diesem Dokument benötigt wird.

Gruß Karo
LO25.2… debian 13( trixie ) auf Raspberry5 8GB (ARM64)
LO25.8… flatpak debian 13( trixie ) auf Raspberry5 8GB (ARM64)
Antworten