Access - promedio de varios campos

 
Vista:
sin imagen de perfil

promedio de varios campos

Publicado por chcha (4 intervenciones) el 17/10/2017 18:21:25
Tengo cuatro campos numéricos (psf1, psf2, psf3 y psf4) en la tabla Pco1 de los que debo calcular el promedio. El problema es que alguno puede no tener ningún valor. Si utilizo NZ y lo divido por 4 me da un valor erroneo ya que si un campo no tiene ningún valor habría que dividirlo por 3. Hay alguna función que pueda usar?. Agradezco ejemplo.
Chicha
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

promedio de varios campos

Publicado por Anonimo (3316 intervenciones) el 17/10/2017 21:59:51
Si, las funciones de dominio

= DSum( ......) / DCount(......)

Y como condición utilizas: que no sean nulos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

promedio de varios campos

Publicado por chcha (4 intervenciones) el 18/10/2017 10:46:18
Muchas gracias

probé con este código:

PROM4 = (Nz([psf4A]) + Nz([psf4B]) + Nz([psf4C]) + Nz([psf4D])) / (DCount("[psf4A]", "PCO1", "[psf4A]is not null") + DCount("[psf4B]", "PCO1", "[psf4B]is not null") + DCount("[psf4C]", "PCO1", "[psf4C]is not null") + DCount("[psf4D]", "PCO1", "[psf4D]is not null"))

pero a pesar de que la sumatoria da 195, me devuelve el valor: 1,27. NO tengo ni idea de donde sale......Que hago mal????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

promedio de varios campos

Publicado por Anonimo (3316 intervenciones) el 18/10/2017 15:00:52
Si los datos están en el mismo nivel (sean cuadros de texto en un formulario o campos de un mismo registro) quizás la respuesta anterior no sea la correcta, pues estaba enfocada a que los datos venían de diferentes registros .....

Con la función NZ se resuelve el dividendo, el divisor hay que calcularlo con expresiones lógicas

Por separado
.- el dividendo (lo que ya posees pero respetando la sintaxis de la función):
Nz(Valor1, 0) + Nz(Valor2, 0) + ..... + Nz(ValorN, 0)

.- el divisor (lo que intentas calcular)
Abs( (Valor1 <> Null) + (Valor2 <> Null) + ..... + (ValorN <> Null))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

promedio de varios campos

Publicado por chcha (4 intervenciones) el 18/10/2017 16:29:30
puse este código en VBA

PROM4 = (Nz([psf4A]) + Nz([psf4B]) + Nz([psf4C]) + Nz([psf4D]))/Abs( (psf4A <> Null) + (psf4B <> Null)+ Abs( (psf4C <> Null) + (psf4D <> Null)

y me devuelve

"error de sintaxis"

Lo puse así

PROM4 = (Nz([psf4A]) + Nz([psf4B]) + Nz([psf4C]) + Nz([psf4D]))/Abs( ([psf4A] <> Null) + ([psf4B] <> Null)+ Abs( ([psf4C] <> Null) + ([psf4D] <> Null)

y me devuelve

"error de sintaxis" nuevamente......

perdón por insistir y muchas gracias por tus respuestas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

promedio de varios campos

Publicado por chcha (4 intervenciones) el 18/10/2017 16:41:51
Ya está
Lo resolví con esta función

PROM4 = (Sgn(Nz([psf4A], 0)) + Sgn(Nz([psf4B], 0)) + Sgn(Nz([psf4C], 0)) + Sgn(Nz([psf4D], 0)))


Muchas gracias por tu ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

promedio de varios campos

Publicado por Anonimo (3316 intervenciones) el 18/10/2017 22:03:16
Curioso, en ni mensaje añadi esto:

...
.- el dividendo (lo que ya posees pero respetando la sintaxis de la función):
....

(vano intento de indicar que no utilizabas adecuadamente la función) y le has hecho caso omiso

OBSERVA que en la respuesta que te ha funcionado SI aplicas la función de forma adecuada ....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar