Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Formel zur Berechnung eins Wertes mit 3 Variablen Bedingungen

Begonnen von NickNac, Dezember 24, 2016, 13:17:47

⏪ vorheriges - nächstes ⏩

NickNac

Hi an alle die Formeln mehr lieben als ich :D
Habe in einem Übersichtsformular zu Rechnungen, Kaufvertragswerten und Stornierungen eine Formel zu finden.
Die Daten die ich habe sind aus der Tabelle Kaufvertrag, der Kaufvertrag Wert, 2 Ja/Nein Felder über die gesagt wird, ob der Kaufvertrag storniert ist oder nicht, über das Zweite, ob die Stornierung mit Kosten verbunden ist oder nicht.
Im Formular wird dargestellt, wie die Summe aller Kaufverträge des Kunden ist (Filterung nach Kundennummer) Diese Summe berücksichtigt nur leider nicht die Werteänderung im Falle einer Stornierung. Die einzelnen "Wenns" würden theoretisch so aussehen.
=Wenn([Storno]=false & [Storno_berechnen]=False;[rgWert]) <-- soweit so gut.. ist das selbe wie [rgWert]
= Wenn([Storno]=true & [Storno_berechnen]=true;[Restwert] <-- hier (In Abfrage ermittelt) die Stornokosten = neuer "rgwert" 
= Wenn([Storno]=true & [Storno_berechnen]=false;[stornoOhne) <-- hier (In Abfrage ermittelt) der neue "rgwert" = 0 Da keine Berechnung der Stornierung erfolgt und somit Kaufvertragwert = 0

Die Formel soll in ein Endlosformular zum Entsprechenden Datensatz in ein Textfeld, welches dann in den Fußbereich als Summe aufsummiert wird. (Handelt sich um ein Ufo welches die Werte im Hafo weiter verwendet)

Wie krieg ich das jetzt in ein Feld mit dem Ergebnis wie ich es mir wünsche? Jemand eine Idee?

=wenn(und([Storno]=false & [Storno_berechnen]=False);[rgWert];0)
&wenn(und([Storno]=true & [Storno_berechnen]=true);[Restwert];0) &wenn(und([Storno]=true & [Storno_berechnen]=false);[StornoOhne];0)

Hab ich schon probiert, Gibt aber die Fehlermeldung, dass ich möglicherweise ein Komma eingegeben hab, vor dem kein Wert oder Bezeichner Steht. :(
Ich muss nicht alles wissen, nur wo ich die Lösung finde :)
Access 13 x64 - VBA .. kann man das essen?

MzKlMu

Hallo,
was ist Storno, ein Ja/Nein Feld ?

Wenn ja, sollte die Formel hier reichen.
=[rgWert] *(Storno+1)

Hintergrund Ja=-1 und Nein = 0

Wenn man zu -1 1 addiert wird 0 draus.
[rgWert] * (-1+1) =  [rgWert] * 0 = 0
Bei Nein (=0) sieht das so aus:
[rgWert] * (0+1) =  [rgWert] * 1 = [rgWert]

Ich würde das aber als berechnetes Feld in der Abfrage machen. Und dieses Feld im Bericht verwenden und summieren.
Gruß Klaus

Lachtaube

Wenn man solche Verrenkungen machen muss, sollte das Datenmodell dringend auf den Prüfstand.Wenn(Nicht [Storno] Und Nicht [Storno_berechnen]; [rgWert];
     Wenn([Storno] Und [Storno_berechnen]; [Restwert];
          Wenn([Storno] Und Nicht [Storno_berechnen]; [StornoOhne]; 0)))
Grüße von der (⌒▽⌒)

NickNac

Danke MzKlMu, hatte nicht bedacht, dass ja/nein in ner Anfrage ja Zahlen sind..
Danke auch Dir Lachtaube, habe Deine Version übernommen, klappt wunderbar!

uns ja.. hätt ich jemals den Umgang mit Access, VBA oder Datenmodellentwicklung gelernt gehörte das dringend auf den Prüfstand! Da ich aber nichts von all dem gelernt hab und einfach so stück für Stück ein System bastel gibt es hier und da ein paar Verrenkungen.
Aber es funktioniert und tut was es soll. Jedenfalls die beiden Vorgänger, die ich seit mehreren Jahren produktiv einsetze :) Sitze grad an der dritten Version, da ich mittlerweile wieder mehr dazu gelernt hab und die Auftragserfassung von Papierhaft auf elektronisch umgestellt werden soll.
Ich muss nicht alles wissen, nur wo ich die Lösung finde :)
Access 13 x64 - VBA .. kann man das essen?

NickNac

Da freut man sich grad, dass die Formel funktioniert, dann sieht man dass die Summe im Formularfuß nicht mehr funktioniert :(
Kriege da nur noch #Fehler angezeigt. Die Formel habe ich in ein Textfeld eingebaut und wollte dies nun aufsummieren.. (=Summe([Feldname]))
Versuch ich das in der Abfrage als berechnetes Feld mit einzubauen beschwert er sich, dass ich die KV Nummer mit einbeziehen müsste..
Idee ?
Ich muss nicht alles wissen, nur wo ich die Lösung finde :)
Access 13 x64 - VBA .. kann man das essen?

MzKlMu

Hallo,
in der Summenformel musst du die Ausgangsformel exakt wiederholen (ohne das Gleichheitszeichen).
Gruß Klaus

NickNac

Habe die Formel drin..
Wenn(Nicht [Storno] Und Nicht [Storno_berechnen]; [rgWert];
     Wenn([Storno] Und [Storno_berechnen]; [Restwert];
          Wenn([Storno] Und Nicht [Storno_berechnen]; [StornoOhne]; 0)))
Die Summe der Werte ergibt Fehler, eine andere Spalte (ohne Fomel) ergibt auch Fehler.. Hier ist nur die reine Zahl aus der Tabelle zu addieren.
Ich muss nicht alles wissen, nur wo ich die Lösung finde :)
Access 13 x64 - VBA .. kann man das essen?

MzKlMu

Hallo,
und wo ist jetzt die Summe geblieben ?
=Summe(Wenn(Nicht [Storno] Und Nicht [Storno_berechnen]; [rgWert];
     Wenn([Storno] Und [Storno_berechnen]; [Restwert];
          Wenn([Storno] Und Nicht [Storno_berechnen]; [StornoOhne]; 0))))

Gruß Klaus

NickNac

Warum er mirt zu der normalen Summe auch den Fehler ausgibt weiss ich leider nicht. evtl weil mit anderen Werten aus der Tabelle gerechnet wird und so nullwerte vorhanden sind, aufgrund derer die Summe da nicht geht.. probier es gleich mal mit nem NZ Zusatz.
Die Formel (mit = und Summe) funktioniert nicht.. #Fehler
Ich muss nicht alles wissen, nur wo ich die Lösung finde :)
Access 13 x64 - VBA .. kann man das essen?

NickNac

Zitat von: NickNac am Dezember 24, 2016, 15:46:28
Warum er mir zu der normalen Summe auch den Fehler ausgibt weiss ich leider nicht. evtl weil mit anderen Werten aus der Tabelle gerechnet wird und so nullwerte vorhanden sind, aufgrund derer die Summe da nicht geht.. probier es gleich mal mit nem NZ Zusatz.
Die Formel (mit = und Summe) funktioniert nicht.. #Fehler

Habe jetzt noch etwas rumprobiert.. Wenn ich die Summenformel (s.O.) raus nehme geht die normale Summe wieder, auch die berechneten Felder (in Abfrage) [Restwert] und [stornoohne] lassen sich summieren.
Sobald ich aber die Summe aus dem berechneten Feld - basierend auf dem Tabellen/Abfrageinhalt [rgWert] und den beiden in der Abfrage berechneten Werten [Restwert] und [Stornoohne] - [RgWertBer] (hier die Wenn Formel drin - rechnet richtig) aufsummieren möchte gibt er für alle berechneten Felder im Formularfuß #Fehler
Ich muss nicht alles wissen, nur wo ich die Lösung finde :)
Access 13 x64 - VBA .. kann man das essen?