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

abhängige Formel implementieren?

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
MoonKid
Beiträge: 172
Registriert: Fr 14. Okt 2011, 21:26

abhängige Formel implementieren?

Beitrag von MoonKid » Sa 10. Okt 2015, 11:23

Wie würde man grundsätzlich so eine Formel in Calc implementieren? In welche Richtung sollte ich mich konzentrieren?
Macroprogrammierung? Könnte Calc auch Python anbinden? Eigentlich soll das auch beim Öffnen mit MS Excel noch funktionieren. :D

Code: Alles auswählen

IF NOT (X < 1000 AND X > 1200) THEN
  Y = 67
ELSE
IF X < 1000 THEN
  Y = (1000-X) / 2 * 0,1 + 67
  IF Y > 100 THEN
    Y = 100

IF X > 1200 THEN
  Y = 67 - ( (X - 1200) / 2 * 0,1 )
  IF Y < 65 THEN
    Y = 65

MoonKid
Beiträge: 172
Registriert: Fr 14. Okt 2011, 21:26

Re: abhängige Formel implementieren?

Beitrag von MoonKid » Sa 10. Okt 2015, 15:26

Das hier wäre nur ein kleiner Teil der eigentlichen Formerl (H12 ist X).

Code: Alles auswählen

=WENN(H12<1000;WENN(((1000-H12)/2*0,001+0,67)>1;1;(1000-H12)/2*0,001+0,67))
Das könnte ich natürlich noch ausweiten, um mein gesamtes Konstrukt da unterzubringen. Da gibt es doch aber sicherlich eine lesbarere Variante?

MoonKid
Beiträge: 172
Registriert: Fr 14. Okt 2011, 21:26

Re: abhängige Formel implementieren?

Beitrag von MoonKid » Sa 10. Okt 2015, 15:59

Hab doch wieder das gute alte Basic nehmen müssen.

Code: Alles auswählen

Function EGProzent(netto)
  result = 0.67

  If netto < 1000 Then
    result = (1000-netto) / 2 * 0.001 + 0.67
    If result > 1 Then
      result = 1
    EndIf
  ElseIf netto > 1200 Then
    result = 0.67 - ( (netto-1200) / 2 * 0.001 )
    If result < 0.65 Then
      result = 0.65
    EndIf
  EndIf
  
  EGProzent = result
End Function
Vermutlich wäre Python3 keine Option wegen der gewünschten Kompatibilität zu MS Excel, oder wird das eingebettet?

btw: Die Funktion rechnet aus, wieviel Prozent Elterngeld man bekommt, in Abhängikeit ('netto') des EG-berechnungsrelevanten Monatsnettoeinkommens.

mikele
* LO-Experte *
Beiträge: 1947
Registriert: Mo 1. Aug 2011, 20:51

Re: abhängige Formel implementieren?

Beitrag von mikele » Sa 10. Okt 2015, 17:09

Hallo,

mit A2 als x kannst du auch folgende Formel nutzen, die auch Excel versteht:

Code: Alles auswählen

=MAX(0,65;MIN(0,67+(MAX(1000-A2;0)-MAX(A2-1200;0))*0,001/2;1))
Gruß,
mikele

MoonKid
Beiträge: 172
Registriert: Fr 14. Okt 2011, 21:26

Re: abhängige Formel implementieren?

Beitrag von MoonKid » Sa 10. Okt 2015, 17:15

Ah, dufte Sache.

Mit dem Basic kann Excel nix anfangen?

mikele
* LO-Experte *
Beiträge: 1947
Registriert: Mo 1. Aug 2011, 20:51

Re: abhängige Formel implementieren?

Beitrag von mikele » Sa 10. Okt 2015, 17:21

Hallo,

Excel nutzt VBA und das versteht LO partiell. Wenn die Tabelle also in beiden Umgebungen funktionieren soll, dann ganz einfach bleiben.
Gruß,
mikele

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

Re: abhängige Formel implementieren?

Beitrag von karolus » Sa 10. Okt 2015, 19:54

Hallo

@Moonkid:
Deine Basic-funktion ist einfach nur überflüssiger Schnickschnack, weil man das simpelst mit Calc-funktionen darstellen kann, wie mikele ja bereits demonstriert. (mit einer winzigen Hilfstabelle in Verbindung mit SVERWEIS gehts vmtl. noch einfacher )
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

MoonKid
Beiträge: 172
Registriert: Fr 14. Okt 2011, 21:26

Re: abhängige Formel implementieren?

Beitrag von MoonKid » So 11. Okt 2015, 10:11

karolus hat geschrieben:@Moonkid:
Deine Basic-funktion ist einfach nur überflüssiger Schnickschnack, weil man das simpelst mit Calc-funktionen darstellen kann, wie mikele ja bereits demonstriert
Habe schon verstanden, dass es auch mit Calc-internen Funktionen geht. Ein simples "Es geht." ist aber kein endgültiges Auswahlkriterium für eine bestimmte Methode. Es gibt mehrere Faktoren die zu berücksichtigen sind - z.B. Lesbarkeit, evtl. spätere Erweiterungen, etc.

Die Frage hier ist aber nicht, welche der Varianten "besser" ist.

Meine Nachfrage war ganz simpel: Wird diese Form von LO-Calc-Basic (wie nennt man den Dialekt eigentlich offiziell?) nicht von MS Excel unterstützt?

Mal von anderer Richtung gefragt: Legt der OpenDocument-Standard auch Macros fest, incl. der dazugehörigen Sprachen?

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

Re: abhängige Formel implementieren?

Beitrag von karolus » So 11. Okt 2015, 11:15

Hallo
Legt der OpenDocument-Standard auch Macros fest, incl. der dazugehörigen Sprachen?
Soweit ich weiss ist|sind die Sprache|n nicht Teil des ODF-Standards, höchstens der xml-Namespace unter dem der eigentliche Code eingebettet wird.


Apropos: argumentiere nicht mit "...Lesbarkeit...", von meiner Seite kein Kommentar diesbezüglich zu deinem Code -- oder "...späterer Erweiterbarkeit.." → Wenn sich drei Eckdaten zur Berechnung ändern muss du an sieben Stellen hartcodierte Zahlen ändern....
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