top of page

Promedio sin contar valores cero.

Para el siguiente ejemplo, tenemos una serie de provincias con unas unidades vendidas, pero hay provincias que han vendido cero unidades.

ree


















El modelo esta en formato de tabla, y, se llama provincias.


Queremos calcular el promedio, pero de las provincias que si tienen unidades vendidas.


Veamos mas claro el problema, si utilizo la funcion CONTAR para contar el numero de cantidades que hay en la columna unidades.

ree




Vemos que nos devuelve 20, incluyendo los ceros.


Ahora, con la funcion SUMA, voy a sumar la columna unidades.

ree





Para calcular el promedio, debemos de dividir la suma de la columna cantidad entre la cantidad total de la columna unidades.

ree




Vemos que nos devuelve 53,15, pero claro el valor cero se ha contado como una cantidad más, es decir, se ha dividido entre 20, cuando se debería de haber dividido entre 17.


Pues, este es el problema que vamos a resolver.


Con una celda dentro del modelo, vamos a la pestaña de insertar, y, hacemos clic en tabla dinámica.

ree








En la ventana que se abre, marcamos la casilla hoja de calculo existente, la colocamos al lado del modelo, y, marcamos la casilla agregar estos datos al modelo de datos.

ree















Aceptamos.


Bajamos a filas la columna provincias, y, a valores la columna unidades.

ree






Hacemos clic en la punta de flecha al lado de suma de unidades en valores, y, seleccionamos configuración de campo de valor.

ree











En la ventana de configuración de campo de valor, seleccionamos promedio, y, aceptamos.

ree













Vemos que tenemos el promedio que calculamos manualmente.

ree






















En Power Pivot, vamos a crear una medida, donde nos debe de calcular el promedio siempre que la columna unidades sea diferente a cero, para ello, vamos a la pestaña de Power Pivot, dentro del grupo cálculos, desplegamos medidas, y, seleccionamos nueva medida.

ree










Las funciones que vamos a utilizar las voy a usar de forma independiente para ir viendo los resultados.


En la ventana de medida, dejo el nombre predeterminado, en la ventana de formula, voy a usar la funcion CALCULATE, como argumento expresión, voy a usar la funcion DISTINCTCOUNT, que cuenta el numero de valores distintos dentro de una columna, el único argumento de esta funcion es columna, pues ponemos la columna de unidades.


=CALCULATE(

DISTINCTCOUNT(Provincias[Unicades])


Punto y coma, como argumento filter1, seleccionamos la columna unidades, ponemos el operador de comparación mayor (>), y, ponemos cero.


Cerramos paréntesis.


=CALCULATE(

DISTINCTCOUNT(Provincias[Unicades]);

Provincias[Unicades]>0)


Hacemos clic en comprobar formula.

ree








Vemos que no se han detectado errores.


Aceptamos.


Se añade la medida a la tabla dinámica, donde vemos que aparece 1 donde es mayor a cero, y, nada donde es igual a cero.

ree


















Volvemos a la pestaña de Power Pivot, desplegamos medidas, administrar medidas.

ree







En la ventana administrar medidas, seleccionamos medida 1, y, hacemos clic en editar.

ree







Ya tenemos el numero de cantidades por la que tenemos que dividir la suma de la columna unidades, por lo que después del signo igual, ponemos la funcion DIVIDE.


Como argumento numerador, usamos la funcion SUM, para sumar la columna de unidades.


=DIVIDE(

SUM(Provincias[Unicades])


Punto y coma, como argumento denominador, en la funcion CALCULATE que hemos creado anteriormente.


Cerramos paréntesis.


=DIVIDE(

SUM(Provincias[Unicades]);

CALCULATE(

DISTINCTCOUNT(Provincias[Unicades]);

Provincias[Unicades]>0))


Aceptamos.


Y ya tenemos el promedio excluyendo las celdas que contienen ceros.

ree
























Si lo calculamos manualmente veremos que tenemos el mismo resultado.


Otra forma de hacerlo es también con CALCULATE, vamos a añadir una nueva medida.


Como argumento expresión, usamos la funcion AVERAGE aplicada a la columna unidades.


=CALCULATE(

AVERAGE(Provincias[Unicades])


Punto y coma, como argumento filter1, ponemos la misma condición, que la columna unidades sea diferente a cero, también, vale poner mayor a cero.


Cerramos paréntesis.


=CALCULATE(

AVERAGE(Provincias[Unicades]);

Provincias[Unicades]<>0)


Aceptamos, y, vemos que tenemos el mismo resultado.


La diferencia del primer método es calcular el promedio de forma manual, y, en el segundo método, usamos la funcion AVERAGE.

ree


















ree

 
 
 

Comentários


© 2019 Miguel Ángel Franco García

bottom of page