2k Aufrufe
Gefragt in Datenbanken von
hallo experts...
ich bräuchte mal einen kleinen tip.
folgendes problem
ich habe ein formular mit 8 textfeldern in denen ein prozentwert drinsteht.
nun möchte ich einen durchschnitt von allen diesen 8 textfelder ermitteln.
[text1]+[text2]+[text3]..... / 8
das textfeld mit dem prozentwert darf aber nur im durchschnitt aller prozentfelder auftauchen, wenn der wert grösser 1 % ist.
dementsprechend muss ja dann für die ermittlung des durchschnittswertes nicht durch 8 geteilt werden sonder nur durch die anzahl der textfelder die grösser 1% sind.

hat jemand von euch eine idee wie ich das mittels vba lösen könnte??
vielen dank für jedes feeback
gruss
linda

8 Antworten

0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo Linda,

das Ganze geht auch ohne VBA, ist aber nicht ganz so übersichtlich. Ich habe den Steuerelementinhalt für die spezielle Mittelwertberechnung mal für drei Eingabefelder (w1, w2 und w3 von Typ Standardzahl) definiert. Das würde bei mir so aussehen:
=(Wenn([w1]<=1;0;[w1])+Wenn([w2]<=1;0;[w2])+Wenn([w3]<=1;0;[w3]))/(Wenn([w1]<=1;0;1)+Wenn([w2]<=1;0;1)+Wenn([w3]<=1;0;1))
Fall du den Typ Prozentzahl verwendest, muss w1<=1 dann mit w1 <= 0,01 usw. gebildet werden. Wenn du VBA haben willst, geht das etwa genau so.

Gruß
Ralf
0 Punkte
Beantwortet von
hallo ralf,
danke für deine antwort....sie ist fast perfekt....
leider brauch ich nicht den mittelwert sondern den durchschnitt.....hast du dafür auch noch eine schlaue idee parat..
würderst mir einen riesen grossen gefallen tun....
danke & gruss,
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo linda,

Der arithmetische Mittelwert ist der Durchschnitt. Wenn du das anders brauchst, beschreibe mir bitte den Unterschied.

Gruß Ralf
0 Punkte
Beantwortet von
hallo ralf,

klaro...manchmal sollte man erst seine grauen hirnzellen anstrengen :-))))
danke & gruss
linda
0 Punkte
Beantwortet von
hallo..
ich bins nochmal..habe auch dieses mal schon meine gehirnzellen angestrengd.nützt aber nix.
folgendes problem bezüglich dem mittelwert.
ich berechnen denn bis jetzt so..
Wenn([text564]<=0,01;0;[text564])+Wenn([text474]<=0,1;0;[text474])) /(Wenn([text564]<=0,01;0;1)+Wenn([text474]<=0,1;0;1))

was ich jetzte noch gerne hätte ist folgendes.
wenn [text474] grösser als 10% ist ...soll automaitsch 100% im feld stehen...ist er kleiner als 10% soll 0% im feld stehen.
eine idee??
danke & gruss
linda
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
MeHallo Linda,

Füge vor bzw. nach derMittelwertberechnung einfach
Me!text474 = iif(Me!text474<0.1,0,1)
ein.

Gruß Ralf
0 Punkte
Beantwortet von
hallo ralf
auf dich kann man sich verlassen...
also bei mir sieht im das im steuerelementeinhalt jetzt so aus..
Wenn([text564]<=0,01;0;[text564])+Wenn([text474]<=0,1;0;[text474])) /(Wenn([text564]<=0,01;0;1)+Wenn([text474]<=0,1;0;1)) if Me!text474 = if(Me!text474<0.1,0,1)

leider macht access garnix..kommt nur ein leeres feld. nichteinmal "Fehler" steht drin..?
wo habe ich da ein denkfehler?
danke & gruss
linda
0 Punkte
Beantwortet von
hab den fehler gefunden

funktioniert
...