Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: accessy am Dezember 07, 2014, 17:53:15

Titel: Anzeige der Prozentualen Differenz
Beitrag von: accessy am Dezember 07, 2014, 17:53:15
Die Abfrage enthält 2 Felder.
2013 und 2014.
Berechnungsfeld lautet: ([2014]-[2013])/[2013].
Eigenschaft enthält die Vorgabe "Prozentzahl".

Das funktioniert prima, hat aber eine Kleinigkeit, die ich nicht hinbekomme.
Wenn 2013 der Umsatz 0 ist, und 2014 der Umsatz >0 ist,
dann ist der Umsatz 2014 zu 2013 um 100% gestiegen.
Aber angezeigt wird das nicht, weil 2013 keinen Wert hat.

Was muss ich wohin eintragen, damit als Wert 100% steht?

Danke euch für Hinweise dazu.
Gruß Achim
Titel: Re: Anzeige der Prozentualen Differenz
Beitrag von: DF6GL am Dezember 07, 2014, 18:57:50
Hallo,

ZitatWenn 2013 der Umsatz 0 ist, und 2014 der Umsatz >0 ist,
dann ist der Umsatz 2014 zu 2013 um 100% gestiegen.


erfindest Du hier eine neue Mathematik? Oder ist das eine Abwandlung der bekannten Milchmädchenrechnung?  ;) ???
Titel: Re: Anzeige der Prozentualen Differenz
Beitrag von: MzKlMu am Dezember 07, 2014, 18:59:26
Hallo,
wenn 2013 der Umsatz 0 war und 2014 5, so ist der Umsatz doch nicht um 100% gestiegen von 0 auf irgendwas lässt sich nicht in % ausdrücken das ist unendlich.
Daher ergibt auch (2014-2013)/2013 einen Fehler das lässt sich nicht in % ausdrücken.
von 800 auf 1000 sind 25% Steigerung
von 500 auf 1000 sind 100% Steigerung
von 1 auf 1000 sind 99900% Steigerung
von 0 auf 1000 sind unendlich % Steigerung = Division durch 0 = mathematisch unmöglich.

PS:
Franz hat es schneller und einfacher beschrieben.  8)
Titel: Re: Anzeige der Prozentualen Differenz
Beitrag von: accessy am Dezember 07, 2014, 19:33:51
Selbstverständlich ist das mathematisch gesehen falsch.
Aber wie würdet ihr es denn sonst ausdrücken?

Wenn ich 2013 einen Umsatz von 0,- €, dieses Jahr bei diesem Kunden aber etwas verkauft habe, dann habe ich "wörtlich" oder von mir aus auch "gefühlt" 100% zugelegt.

Gehen wir es mal anders an.
In Excel kann ich die IF...THEN so gestalten, dass ich sage, wenn 2013=0 und 2014>0 ist, dann schreibe mir in die Zelle "100%" rein.

Kann ich in meiner Abfrage auch so eine IF...THEN einbauen?
Danke, Gruß Achim
Titel: Re: Anzeige der Prozentualen Differenz
Beitrag von: MzKlMu am Dezember 07, 2014, 19:40:45
Hallo,
selbstverständlich geht das auch wie in Excel, fast genau so:
Wenn([2013]=0;1;([2014]-[2013])/[2013])
das ergibt doch aber ein völlig unsinniges Bild

Von 200 auf 1000 = 400%
Von 100 auf 1000 = 900%
von 0 auf 1000 100% ? ? ?

Das kann ja nicht dein ernst sein. Das ist vom Ansehen her gefühlt nicht richtig.
Ich würde das Feld einfach leer lassen.
Oder Du machst 2 berechnete Felder eines mit der absoluten Steigerung und eines mit Prozent das dann im Falle von 2013= 0 leer bleibt.

Die 100% Geschichte finde ich jedenfalls unmöglich, das kann auch gefühlt nicht richtig sein.


PS:
Nicht ganz nebenbei, Feldnamen mit reinen Zahlen sollten unbedingt vermieden werden.
Besser wäre es, wenigstens einen Buchstaben voranzustellen.
Titel: Re: Anzeige der Prozentualen Differenz
Beitrag von: accessy am Dezember 07, 2014, 20:00:57
Okay, ich füge mich der logischen Anzeige und lasse die 100% mal weg.
Titel: Re: Anzeige der Prozentualen Differenz
Beitrag von: MzKlMu am Dezember 07, 2014, 20:14:24
Hallo,
Zitatlasse die 100% mal weg.
das geht aber mit Deiner Formel nicht, die führt zu einem Fehler, da Division durch 0.
Wenn Du das Feld dann leer lassen willst, ändere die Formel von mir wie folgt:
Wenn([2013]=0;Null;([2014]-[2013])/[2013])

Übrigens, bei einer Gegenüberstellung von echten 100% zu Deinen 100% wird das unlogische Deines ursprünglichen Vorhabens sehr deutlich.

500 auf 1000 = 100%
0 auf 1000 auch 100%

PS:
Hast Du noch meinen Nachtrag oben zu den Feldnamen gelesen ? Solltest Du nicht ignorieren.
Titel: Re: Anzeige der Prozentualen Differenz
Beitrag von: accessy am Dezember 07, 2014, 22:41:40
Ja, den Nachtrag habe ich gelesen. Ich werde die Felder umbenennen. Von 2013 auf U2013.
Ich habe mal einen Screenshot gebastelt.
Ihr seht, da kommen weiter unten Kunden, die haben 2014 was gekauft, aber 2013 nicht.
Z.B. der mit 547,-€.

Aus der mathematischen Logik der Formel her, bekommt er keine Beachtung; wie alle Kunden die 2013 NULL hatten, aber 2014 kauften.
So müsste der Kunde mit 547,-€ als Gewinner (pseudoprozentual) irgendwo oben stehen.

Von 500 auf 1000 sind 100% gesteigert.
Aber von 0 auf 500 hätte in der Tabelle, absteigend auch 100%..."gefühlte 100%"...
Kommt das irgendwie rüber, was ich versuche zu erklären?

Leute, ich weiß doch, dass man in der Mathematik nicht durch Null dividieren kann.
Es ist zwar logisch falsch, aber für mich eine sinnigere Ansicht.
Wie also bekomme ich 100% angezeigt, wenn 2013=0 ist und 2014 >0 ist.
Und natürlich auch -100%, wenn 2013>0 und 2014=0 ist.

(http://www11.pic-upload.de/thumb/07.12.14/lsh5y8hk4zy7.jpg) (http://www.pic-upload.de/view-25490045/screenshot.jpg.html)
Titel: Re: Anzeige der Prozentualen Differenz
Beitrag von: MzKlMu am Dezember 07, 2014, 23:05:57
Hallo,
ich habe Dir doch eine Formel bereits gezeigt die funktioniert, bereits in meiner Antwort #4 steht die richtige Formel, die auch für den umgekehrten Fall funktioniert. Nicht gesehen ?
Im umgekehrten Fall ist die Mathematik richtig, da kommen immer -100% raus, schon mit Deiner Formel.
Titel: Re: Anzeige der Prozentualen Differenz
Beitrag von: accessy am Dezember 08, 2014, 07:00:50
Ich habe die Formel aus deiner Antwort #4 entnommen und in meiner Abfrage exakt so eingebaut.
Aber das Resultat hat sich nicht geändert.
Siehe Screenshot der Abfrage.
(http://www11.pic-upload.de/thumb/08.12.14/5yke4m15tfzi.jpg) (http://www.pic-upload.de/view-25492242/umsatz.jpg.html)
(http://www11.pic-upload.de/thumb/08.12.14/tra9r2y3sse.jpg) (http://www.pic-upload.de/view-25492279/11.jpg.html)

Oder habe ich da etwas nicht richtig verstanden, bzw. vergessen?
Ach ja. Die Jahre 2004 bis 2014 kann ich nicht mit einem Buchstaben davor ändern. Das Feld heißt "Jahr" und die einzelnen Jahre stammen aus einer Kreuztabellenabfrage.
Titel: Re: Anzeige der Prozentualen Differenz
Beitrag von: MzKlMu am Dezember 08, 2014, 09:19:02
Hallo,
Du sprichst die ganze Zeit von 0 (der Zahl), aber ein Feld das leer ist, enthält nicht 0 sondern ist NULL. Und mit NULL (=Nix) kann man nicht rechnen. Du musst also auf NULL prüfen und Felder die NULL sein können, sind mit Nz() behandeln.
So sollte Dein Vorhaben klappen:
Vergleich zum Vorjahr: Wenn([2013] Ist Null;1;(Nz([2014];0)-[2013])/[2013])
Oder so:
Vergleich zum Vorjahr: Wenn(Nz([2013];0)=0;1;(Nz([2014];0)-[2013])/[2013])
Die 2. Formel deckt beide Fälle ab, NULL und 0 (die Zahl).
Titel: Re: Anzeige der Prozentualen Differenz
Beitrag von: accessy am Dezember 08, 2014, 20:20:02
Mist, ich komme mit einigen Dingen nicht so klar.
Du fügst da ein "NZ" ein, also eine Variable, oder?
Die ist nicht definiert, es kommt aber auch keine Fehlermeldung.

Die Lösung ist fast perfekt.
Leider wird auch 100% eingetragen wenn 2013 und 2014 jeweils leer ist, bzw. Null.
Da dürfte nichts stehen, müsste leer bleiben.
Titel: Re: Anzeige der Prozentualen Differenz
Beitrag von: MzKlMu am Dezember 08, 2014, 22:04:23
Hallo,
Nz() ist doch keine Variable, Nz() ist eine eingebaute Access Funktion.

Du musst eine weitere Wenn Bedingung um die Formel machen, die für beide Felder NULL abfängt.
Titel: Re: Anzeige der Prozentualen Differenz
Beitrag von: accessy am Dezember 09, 2014, 07:19:19
Der logische Operator UND...In EXCEL kein Problem. Aber in Access...?
Ich bekomme immer die Meldung "Syntaktisch falsch" und da drunter steht
"Sie haben ein Komma eingegeben, vor dem kein Wert oder Bezeichner steht"
Ich habe kein Komma eingegeben.
Wenn(und([2013]=0;[2014]=0);0;Wenn(Nz([2013];0)=0;1;(Nz([2014];0)-[2013])/[2013]))
Ich krieg das nicht gebacken
Titel: Re: Anzeige der Prozentualen Differenz
Beitrag von: DF6GL am Dezember 09, 2014, 08:56:08
Hallo,

"Und" ist ein Operator und keine Funktion...

Wenn([2013]=0 UND [2014]=0;....
Titel: Re: Anzeige der Prozentualen Differenz
Beitrag von: accessy am Dezember 09, 2014, 13:49:54
So habe ich es ohne Fehlermeldung eingebaut.

Vergleich zum Vorjahr: Wenn([2013]=0 Und [2014]=0;Wenn(Nz([2013];0)=0;1;(Nz([2014];0)-[2013])/[2013]))

Das Resultat: Es wird jetzt gar kein Prozentwert mehr gezeigt.
Titel: Re: Anzeige der Prozentualen Differenz
Beitrag von: DF6GL am Dezember 09, 2014, 15:40:39
Hallo,

vielleicht brauchst Du in Deiner Mathematik statt "Und" ein "ODER"...

und wenn die Felder "leer" sind (nicht 0) , dann ist auch hier die nz()-Funktion erforderlich:

Wenn(nz([2013];0)=0 Und nz([2014];0)=0;Wenn(Nz([2013];0)=0;1;(Nz([2014];0)-[2013])/[2013]))
Titel: Re: Anzeige der Prozentualen Differenz
Beitrag von: accessy am Dezember 09, 2014, 19:04:52
Hallo Franz,

ich habe jetzt mal deine Formel genommen. Aber die macht wieder was anderes.
Jetzt wird überall wo 2013=0 und 2014=0 ist, die 100% eingesetzt.
Dafür bleiben jetzt alle anderen leer.

Vielleicht sollten wir das hier beenden, weil es eventuell so in Access gar nicht funktioniert.
Ich habe es mir jetzt einfacher gemacht, indem ich die Abfrage nach Excel zur Analyse exportiert habe.
Und hier ging das ruckzuck mit meinem Vorhaben wie es angezeigt werden soll.

Ich weiß, dass ich mich hier manchmal ein wenig ungeschickt anstelle, vor allem, weil ich in Excel und VBA-Excel minimale Kenntnisse habe.
Aber ich nehme diese Access DB, arbeite ein wenig damit und gut. Diese DB wird sich im Grunde genommen nicht großartig weiter entwickeln. Ich lege da keine Schwerpunkte drauf.

Daher bitte nicht sauer sein, wenn ich manche Antworten von euch nicht umgesetzt bekomme.

Ich danke jedenfalls allen hier, die mir bei jeglichen Fragen dennoch Hilfe anbieten.
Schönen Abend euch allen
Gruß Achim
Titel: Re: Anzeige der Prozentualen Differenz
Beitrag von: MzKlMu am Dezember 09, 2014, 19:19:36
Hallo,
aber natürlich klappt das auch in Access.
Vergleich zum Vorjahr: Wenn(Nz([2013];0)=0 Und Nz([2014];0)=0;Null;Wenn(Nz([2013];0)=0;1;(Nz([2014];0)-[2013])/[2013]))
Getestet

Wenn hat ja 3 Teile Wenn;Dann;Sonst , genau wie bei Excel. Und Franz hat den Dann Teil vergessen.

ZitatIch weiß, dass ich mich hier manchmal ein wenig ungeschickt anstelle,
das hat mit ungeschickt nichts zu tun, Du hast nur keine einheitliche Linie. Mal sprichst Du von Null, dann von der Zahl 0. Null (die Zahl !!) ist was anderes als der undefinierte Wert NULL, mit NULL kann man nichts anfangen. Daher muss entweder auf NULL (=Nix) geprüft werden (mit Ist Null) oder die Funktion Nz() angewendet werden.
Wenn man eine Funktion nicht versteht, ist der erste Anlauf die Access Hilfe die deutlich besser ist als ihr Ruf. Zu Nz() findest Du in der Hilfe einen ganzen Roman, mit Beispielen.
Auch in Deinem letzten Beitrag oben sprichst Du wieder von der Zahl 0 (2013=0).
Was ist es denn jetzt, NULL oder 0 ? Wenn man sich die Bilder ansieht, ist es NULL.

Aber ist egal, über Nz() kann man beider Fälle abdecken.
Titel: Re: Anzeige der Prozentualen Differenz
Beitrag von: accessy am Dezember 09, 2014, 20:30:58
Ja, das sieht jetzt wirklich gut aus, auch wenn die 100% natürlich falsch sind.

Bei unserer Präsentation des Jahresbudgets soll diese 100% eigentlich nur ausdrücken, dass es einen neuen, kaufenden Kunde gibt und dieser in der Reihenfolge an den richtigen Position steht.

Danke für euer Verständnis und den vielen Hinweisen.
Gruß Achim