Juni 21, 2021, 02:47:36

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Einfachen Mittelwert in einem Bericht anzeigen

Begonnen von BikeArno, März 15, 2021, 10:00:30

⏪ vorheriges - nächstes ⏩

BikeArno

Hallo,

ich habe eine, hoffentlich einfache, Frage: Ich erstelle einen Access-Bericht. Dort gibt es u.a. das Feld "Ausgaben in Euro". Ich benötige im Bericht die durchschnittlichen Ausgaben über alle Datensätze. Diese möchte ich im Detailbereich des Berichtes über ein Textfeld ausgeben.

Ich scheitere :'(. Mein Vorgehen war:

- Ich habe ein Textfeld eingefügt
- Im Seuerelementeninhalt habe ich eingegeben: =Mittelwert([AusgabenEuro])
- Ergebnis: #Fehler

Für mich erschien das logisch... Was habe ich also falsch gemacht und wie macht man es (möglichst einfach) korrekt?

Gruß

MzKlMu

Hallo,
im Detailbereich kann man nicht aggregieren. Das Feld würde ja für jeden Datensatz wiederholt werden. Auch in einem Seitenkopf/fuß geht das nicht.
Das geht nur im Berichtskopf/fuß oder in einem Gruppenkopf/fuß.
Gruß
Klaus

BikeArno

Zitat von: MzKlMu am März 15, 2021, 10:15:12Das geht nur im Berichtskopf/fuß oder in einem Gruppenkopf/fuß.

Danke. Im Berichtsfuß kommt leider die gleiche Fehlermeldung. Ist der Code
=Mittelwert([AusgabenEuro])korrekt?

Kann man den Datenbereich mittels Code theoretisch auch durch eine Where-Klausel begrenzen? Also z.B. bilde den Mittelwert, wenn AusgabenEuro nicht Null? 

MzKlMu

Hallo,
Zitatwenn AusgabenEuro nicht Null?
das macht die Mittelwertfunktion automatisch.
Ist das Feld "AusgabenEuro" ein berechnetes Feld ?
Gruß
Klaus

andyfau

März 15, 2021, 12:00:27 #4 Letzte Bearbeitung: März 15, 2021, 12:07:14 von andyfau
Hallo Klaus,
Zitat von: MzKlMu am März 15, 2021, 11:25:13das macht die Mittelwertfunktion automatisch.
Gehe ich nicht recht in der Annahme, dass es nicht egal ist wenn ich Nullwerte (Zahl 0) mit einfliessen lasse:
Mittelwert = Summe(Werte)/Anzahl(Werte). Wenn da bei Anzahl(Werte) Nuller dabei sind ist das doch nicht egal.
Oder gibtes, umgekehrt gefragt, eine Mittelwert-Funktion die die Nullersaetze mit zaehlt?
Du meinst wahrscheinlich den Feldinhalt NULL ,der ja nicht gleich Zahl 0 ist, Dann stimmt das natuerlich.

MzKlMu

Hallo,
wenn von Null im Zusammenhang mit Datenfeldern die Rede ist, dann meine ich nicht die Zahl.
Wenn die Zahl 0 im Feld ist, so muss diese natürlich in die Mittelwertbildung einfließen, denn es ist ja ein Wert. Es sei denn, ich will das explicit nicht haben, dann muss die Zahl 0 per Where ... ausgeschlossen werden.
Gruß
Klaus

BikeArno

ZitatIst das Feld "AusgabenEuro" ein berechnetes Feld ?

Sowohl als auch. Habe es sowohl mit einem berechneten als auch einem unberechnetem Feld probiert: #Fehler.
Zur Verdeutlichung lade ich einmal einen Beispieldatensatz mit Bericht hoch.

Desweiteren möchte ich den Mittelwert im Beispiel eigentlich an eine Bedingung knüpfen und z.B. nur dann berechnen, wenn Kriterium A im Datensatz = "Ja". Die übliche Where-Klausel kann man hier aber scheinbar nicht nutzen...

DF6GL

Hallo,

im anderen Thread habe ich darauf hingewiesen, dass der Datentyp des Tabellenfeldes "Stunden" in "LONG" zu ändern ist...

Weiterhin sinnvoll ist:  "KriteriumA" und "KriteriumB" in Datentyp "JA/NEIN" zu konvertieren.

MzKlMu

Hallo,
das kann doch nicht gehen, auf dem Bericht gibt es kein Feld mit dem Namen Stunden. Wie willst Du da einen Mittelwert bilden ?

Du musst hier eine Aggregatfunktion einsetzen:
=DomMittelwert("Stunden";"qry_Datensatz";"KriteriumA = 'Ja'")
Und natürlich den Datentyp ändern, wie willst Du mit kurzem Text rechnen ?
Es geht zwar, weil Access da tolerant ist, aber trotzdem.

Warum nimmst Du für die Kriterien nicht Ja/Nein Felder statt Text ?
Gruß
Klaus

BikeArno

März 16, 2021, 13:11:32 #9 Letzte Bearbeitung: März 17, 2021, 10:32:23 von BikeArno Grund: Zusatzfrage, wollte kein neues Thema öffnen
Stimmt, ich habe die Datentypen geändert. War mein Fehler...

Danke Klaus, die DomMittelwertfunktion hilft; sogar im Detailbereich des Berichtes.

Nachtrag zum Kriterium:

Bisher habe ich das SQL-Kriterium auch genutzt, um bestimmte Datensätze für Berechnungen zu wählen. Diese habe ich über ein LIKE-Kriterium definiert
Where ID Like "ID.01.*"
Fiktives Beispiel = Mittelwerte aus allen Datensätzen mit ID.01.*** und Kriterium = "Ja". Dieser Code erzeugt einen Fehler:

=DomMittelwert("Stunden";"qry_Datensatz";"KriteriumA='Ja'" Und ID LIKE "'ID.01*'")
Auch folgender Code funktioniert bei mir nicht, bei dem ich nur Datensätze in den Mittelwert aufnehmen möchte, wenn die Stundenzahl größer Null ist:

=DomMittelwert("Stunden";"qry_Datensatz";"KriteriumA='Ja'" Und "Stunden >0")
Sieht jemand den Fehler? Danke nochmal.

BikeArno

Hallo,

hat niemand eine Idee oder ist mein Vorhaben unmöglich?

Ich muss einen Mittelwert mittels Aggregatfunktion berechnen, wenn 2 Kriterien erfüllt sind. Ist eine Mittelwertberechnung mit 2 Kriterien nicht möglich? Ich habe recherchiert, aber trotzdem keine Lösung gefunden. Mein Vorgehen war (beispielhafter Code, siehe Anhang) so:

=DomMittelwert("Stunden";"qry_Datensatz";"KriteriumA='Ja'" Und "Ausgaben>0")
Ich erhalte #Fehler.

Gruß

MzKlMu

Hallo,
der 2. Ausdruck:
=DomMittelwert("Stunden";"qry_Datensatz";"KriteriumA='Ja' And Ausgaben > 0")Access ist in manchen Teilen nicht ganz vollständig eingedeutscht. In einem Ausdruck müssen die englischen Befehlsworte verwendet werden.
Zu dem ersten Ausdruck:
Was ist denn ID.01 ?
Welcher Datentyp ist denn die ID ?
Erkläre das mal genauer.
Gruß
Klaus

BikeArno

März 19, 2021, 11:15:29 #12 Letzte Bearbeitung: März 19, 2021, 12:15:07 von BikeArno Grund: Gelöst
Hallo Klaus,

dein Code funktioniert, das hätte ich nicht hinbekommen, obwohl es so simpel scheint! Tausend Dank!

Gruß

BikeArno

Ich muss mich hier nochmal melden, da ich an einer weiteren Mittelwertberechnung scheitere. Der Unterschied hier ist, dass ich den Wertebereich (Ausreiser) eingrenzen möchte. Und zwar möchte ich im Beispiel nur Werte berücksichtigen, die unter dem Wert von 5.000 liegen. Ich erhalte dabei jedoch eine Fehlermeldung. Folgenden Code nutze ich:

=Runden(DomMittelwert("Betrag";"qry_Datensatz";"Betrag < 5000 AND KriteriumA='true' AND KriteriumB like 'DS*'");2)
Wenn ich beim Kriterium <5000 hingegen schreibe '<5000' erscheint zwar keine Fehlermeldung, der Mittelwert wird jedoch dann ohne dieses Kriterium zu berücksichtigen berechnet.

Hat jemand eine Idee, was ich falsch mache?

MzKlMu

Hallo,
ZitatIch erhalte dabei jedoch eine Fehlermeldung.
Und die lautet ?

PS:
Bitte die Fehlermeldungen immer vollständig zitieren.
Gruß
Klaus