Seite 1 von 2

[gelöst] Auf eine Formel verweisen?

Verfasst: Di 2. Dez 2014, 14:25
von Rhovan
Hallo, bin schon Zeit 2h auf der suche, finde allerdings nichts.
Kann natürlich auch sein das ich den Wald vor lauter Bäumen nicht sehen.
bzw. Das richtige Schlagwort nicht kenne.

Frage:
Wie kann ich eine Formel immer wieder verwenden so das ich sie nur auf eine Tabelle schreiben muss und von dort aus referenziere.
Also nicht den Wert den die Formel erstellt sondern die Formel selbst, so das sie an jenem Ort ausgeführt wird.

Beispiel:
In Januar A5 steht MO und in Tabelle Script steht in A22 folgende Formel:

Code: Alles auswählen

// Ermittelt den Wochentag des Vortages.
=WENN($A5="MO";"DI";WENN($A5="DI";"MI";WENN($A5="MI";"DO";WENN($A5="DO";"FR";WENN($A5="FR";"SA";WENN($A5="SA";"SO";WENN($A5="SO";"MO")))))))
In Januar A6 möchte ich auf meine Formel verweisen um entsprechend den jeweiligen Tag zu ermitteln.
Nun soll er natürlich von Januar A5 sich den Wochentag holen und den richtigen in Januar A6 eintragen.
Sinn und Zweck der Aktion ist das ich meine Formel nur einmal Eintrage, um mir spätere Änderungen zu vereinfachen.
(Ähnlich wie bei Funktionen in div. Programmiersprachen/Skript-sprachen).

Makros wollte ich nach Möglichkeit vermeiden, da die Tabelle für mehrere Fremdrechner bestimmt sind und somit höchstwahrscheinlich gar nicht ausgeführt werden.

Mit freundlichen Grüßen
Rhovan

Re: Auf eine Formel verweisen?

Verfasst: Di 2. Dez 2014, 16:29
von karolus
Hallo

Arbeite mit richtigen Datumswerten in der gewünschten Formatierung, und entsorge diese grausame Formel möglichst schnell.

Und falls du wirklich nur die grossgeschriebenen Wochentagskürzel benötigst ohne Bezug zu einem realen Datum, erstell dir zu den bereits vorhandenen Sortierlisten eine mit den Einträgen MO , DI , MI, ... (→Extras→Optionen→Calc→Sortierlisten...)

Karolus

Re: Auf eine Formel verweisen?

Verfasst: Di 2. Dez 2014, 20:19
von mikele
Hallo,

du kannst auch die Formeln Text() und Gross() kombinieren, um aus einem Datum den Wochentag in Großbuchstaben zu erzeugen (siehe Beispiel).

Re: Auf eine Formel verweisen?

Verfasst: Di 2. Dez 2014, 22:14
von Rhovan
Huhu, schon mal vielen lieben dank an euch beide.
Ich glaube ich habe mich nicht richtig ausgedrückt.

Ich versuch noch einmal mein Problem zu erklären.
Also ich möchte ein Tabellenblatt wo ich meine Formeln niederschreibe.

Da ja alle Tabellen (zumindest annähernd) gleich sind Januar, Februar.... ect.
Möchte ich quasi von dieser Formel Tabellenblatt erben.
Das wenn (und das wird es) eine Änderung kommt, ich nur an einer stelle meine Änderung herein schreib, so das es sich auf allen Tabellen ändert.


Gruss
Rhovan

Re: Auf eine Formel verweisen?

Verfasst: Di 2. Dez 2014, 22:32
von mikele
Hallo,
ich glaube, das was du willst und ich nur erahne, geht nicht.
Du solltest, wie karolus schon schrieb, den Formelwust vereinfachen bzw. optimieren, dann lassen sich auch Veränderungen einfacher umsetzen.
Worin besteht dein ursprüngliches Problem?

Re: Auf eine Formel verweisen?

Verfasst: Mi 3. Dez 2014, 00:02
von Rhovan
Gut ich versuch es noch mal mich richtig auszudruecken. :^)
Es geht nicht um die Formelwurst, es geht darum das ich die Formel tranverieren kann und sie nicht 20 mal in einem Dokument ausbessern muss wenn es doch mal zu einer aenderung kommt.
Ich splitte die meine frage noch mal auf.

Frage 1. Konstante:

Mal vereinfachtes Beispiel:

Code: Alles auswählen

// Beispiel 1
// In Tabelle Kommando Zeile: 1 Spalte: A
=SUMME($A1:$B1));

// In Tabelle Kaninchen Zeile: 1 Spalte: H
=Kommando.$A$1
Ich habe mich jetzt nicht mit der richtigen syntax von SUMME() auseinander gesetzt, dieser "code" ist nur beispielhaft gemeint.

Soweit so gut, oder auch nicht. Nun habe ich den Wert von Kommando.a1 in meinem Kaninchen stehen.
Das moechte ich aber nicht!
Ich will das dort dann =SUMME($A1:$B1)); steht und nicht der wert der in Kommando errechnet wurde.


Frage 2. "Variabel"
Einfaches Beispiel von oben etwas erweitert.

Code: Alles auswählen

// Beispiel 2
// In Tabelle Kommando Zeile: 1 Spalte: A
=SUMME($A1:$B1));

// In Tabelle Kaninchen Zeile: 1 Spalte: H
=Kommando.$A$1
// In Tabelle Kaninchen Zeile: 2 Spalte: H
=Kommando.$A$1
// In Tabelle Kaninchen Zeile: 3 Spalte: H
=Kommando.$A$1
.....
Ich habe mich jetzt nicht mit der richtigen syntax von SUMME() auseinander gesetzt, dieser "code" ist nur beispielhaft gemeint.

Das tut es:
Kaninchen H1 gibt mir den wert von Kommando.A1
Kaninchen H2 gibt mir den wert von Kommando.A1
Kaninchen H3 gibt mir den wert von Kommando.A1

Das moechte ich:
Kaninchen H1 holt mir in dem falle die summe aus A1 und B1 aus Kaninchen.
Kaninchen H2 holt mir in dem falle die summe aus A2 und B2 aus Kaninchen.
Kaninchen H2 holt mir in dem falle die summe aus A3 und B3 aus Kaninchen.


Jetzt kommt ein Bauer aus dem Walde und moechte auch noch die Kaninchen in spalte D dazu Summiert haben
und natuerlich nicht nur in der Tabelle Kaninchen sondern auch in der Tabelle Rehe und Kaefer und und ....
(nicht verwechseln Kaninchen != Kaefer)

Normales vorgehen:
Tabelle auf, zwei zeilen aendern, runter ziehen.
Tabelle auf, zwei zeilen aendern, runter ziehen.
....

Vorgehen wenn es funktioniert wie ich es haben moechte:
Ich gehe in Tabelle Kommando und aendere meine formel in A1 und siehe da, die ganzen Tierfreunde werden in Ihrer Tabelle zwischen A und D Summiert.

Ich hoffe ich habe mich jetzt richtig ausgedrueckt.
Wahrscheinlich ist es voll das das anfaenger ding und ich stehe wie der ochse vom Berg.
(wie damals als ich versucht hatte taenaere operatoren zu begreifen) ;)

Dankend fuer eure geduld.
Rhovan

edit:
Natuerlich wuerde auch so etwas gehen:

Code: Alles auswählen

define MIN(x,y)  ((x<y) ? x : y)
Wo ich dann nur noch in die beliebige Zelle rein schreiben brauch =MIN($A1,$B1)
Dann muesste Calc die beiden Variablen Zahlen $A<Var Zahl> und $B<Var Zahl> automatisch inkrementieren.

Re: Auf eine Formel verweisen?

Verfasst: Mi 3. Dez 2014, 07:11
von karolus
Hallo
Calc ist eine Tabellenkalkulation kein php-was_auch_immer - mach dich vertraut mit den Konzepten von Calc und arbeite mit diesen - dann löst sich vieles von dem was du hier machen willst in heisser Luft auf.

Karolus

Re: Auf eine Formel verweisen?

Verfasst: Mi 3. Dez 2014, 08:49
von lessger
Hallo Rhovan,

Du kannst das mit einer benutzerdefinierten Funktion machen (https://help.libreoffice.org/Calc/User- ... nctions/de) - das ist eigentlich Makros. Wenn Du es nicht sehr kompliziert machen willst, mußt Du mit den folgenden Einschränkungen leben:
  • Bezug auf andere Zellen innerhalb des Tabellenblattes ist innerhalb der benutzedefinierten Funktion nicht möglich, d.h. alle nicht-konstanten Werte der Funktion müssen als Parameter übergeben werden.
  • Außerdem stehen Dir innerhalb der benutzerdefinierten Funktion die eingebauten Calc-Funktionen nicht zur Verfügung. Dafür die Basic-Funktionen.
Bei den Beispielen, die Du gegeben hast, ist das aber kein Problem.

Ich würde das aber selten einsetzen. Wie schon geagt, Calc ist eine Tabellenkalkulation, keine Programmiersprache.

Grüße
Gerhard

Re: Auf eine Formel verweisen?

Verfasst: Mi 3. Dez 2014, 09:21
von karolus
lessger hat geschrieben:
  • Außerdem stehen Dir innerhalb der benutzerdefinierten Funktion die eingebauten Calc-Funktionen nicht zur Verfügung. Dafür die Basic-Funktionen.
@Gerhard
Das stimmt so nicht, "eingebaute" Calcfunktionen kann man in UDF's benutzen.
Allerdings nutzt das im Sinne der Fragestellung von rhovan nichts.
Der Fragestellung am nächsten kommt wohl die Benutzung von =INDIREKT(...) und evtl. noch MEHRFACHOPERATION aber seine Vorstellungen wird rhovan auch damit nicht umsetzen können

Re: Auf eine Formel verweisen?

Verfasst: Mi 3. Dez 2014, 10:38
von lessger
@Karolus,
Das stimmt so nicht, "eingebaute" Calcfunktionen kann man in UDF's benutzen.
da hast Du schon recht, aber deswegen hatte ich geschrieben
Wenn Du es nicht sehr kompliziert machen willst, mußt Du mit den folgenden Einschränkungen leben:
Um Calc-Funktionen muß man sich ein Stück weit in UNO einarbeiten und die englischen Namen der Funktionen kennen. Wenn Du nur die Basic-Funktionen nutzt, bleibt es einfacher. Wobei der Link es recht einfach erklärt.

Ansonsten könnte die MEHRFACH.OPERATIONEN schon die Lösung für Rhovan sein. Ich kannte die Funktion nicht; im Funktionsassistenten ist sie nicht drin, die Option unter Daten ist bei mir ausgegraut. Und in der Hilfe findet man auch nur den Assistenten, nicht die Funktion selbst. Aber es kann genau das Gesuchte sein...

Grüße
Gerhard