Formel von Calc in Base

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

malte184
Beiträge: 1
Registriert: Do, 12.09.2013 11:54

Formel von Calc in Base

Beitrag von malte184 »

Hallo Zusammen,

ich bin noch nicht sehr vertraut mit Base, deshalb würde ich mich über eure Hilfestellung sehr freuen.

Folgendes Problem!?:
Ich habe in Calc eine Tabelle, die Namen, Branche, Bewertung, Anteil etc. beinhalten. Gleichzeitig habe ich eine Formel entworfen, die automatisch Bewertung (AAA-D) und Anteile (in%) in ein Verhältnis setzt.
Hier die Formel: msoxl:=IF(C251="","",VLOOKUP(C251,"AAA",100;"AA",91.667;"A",83.333;"BBB",75;"BB",66.667;"B",58.333;"CCC",50;"CC",41.666;"C",33.333;"DDD",25;"DD",16.667;"D",8.333},2,0))
Ich gebe in "Bewertung" zb. AA ein und erhalte dann automatisch den Wert 91. Der widerum wird ins Verhältnis zum Anteil(%) gesetzt. BSP: AA, 10%= 9,1 (Zwischenergebnis)
Also jede Veränderung in "Bewertung" oder "Anteil" führt zu einem neuen Zwischenergebnis.

Nun ist es so, dass ich damit nicht nur das Verhältnis eines Namens abfrage, sondern auch alle Namen, die einer Branche zugehören. Das ergibt dann zusammengefasst (alle Namen eine Branche) eine dritte Bewertung, die dann wiederum anhand der o.g. Formel in Buchstaben (AAA-D) automatisch inein Endergebnis gewandelt werden soll.

Ich möchte gerne, dass diese Formel auch in Base funktioniert und ich zum einem über die Formularmaske einfach nur bestimmte Werte (Bewertung und/oder Anteil) abändern muss, und so dann über die Abfragefunktion die "neue" Gesamtbewertung erhalte.

Ich hoffe, dass ich mich verständlich ausgedrückt habe und freue mich über eure Antworten.

Viele Grüße
Malte
RobertG
********
Beiträge: 2070
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Formel von Calc in Base

Beitrag von RobertG »

Hallo Malte,

wenn ich das richtig verstanden habe, dann würde das auf die Funktion "CASE WHEN ..." passen. Ich zitiere einmal aus dem Base-Handbuch:
CASE WHEN expr1 THEN v1[WHEN expr2 THEN v2] [ELSE v4] END
Wenn expr1 wahr ist wird v1 zurückgegeben. [Optional können weitere Fälle angegeben werden] Sonst wird v4 wiedergegeben oder NULL, wenn kein ELSE formuliert ist.
CASE WHEN DAYOFWEEK("Datum")=1 THEN 'Sonntag' WHEN DAYOFWEEK("Datum")=2 THEN 'Montag' ... END
könnte per SQL den Tagesnamen ausgeben, der sonst in der Funktion nur in Englisch verfügbar ist.
Also für Dich:
CASE WHEN "Bewertung" = 'AAA' THEN 100 WHEN "Bewertung" = 'AA' THEN 91.667 END

Gruß

Robert
Antworten