Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
MasterPG5
Regular Visitor

Cálculo de la media anual a partir de la media mensual

Hola a todos,

Soy bastante nuevo en PowerBI, así que mi problema puede ser bastante fácil de resolver, pero todavía no he encontrado una respuesta adecuada.

Así que tengo muchos datos geográficos de un período de 40 años con tiempos de medición exactos. Sin embargo, las mediciones no siempre se hacían con la misma frecuencia. Por ejemplo, cuando los valores eran altos, las mediciones se realizaban con más frecuencia.

Lo que me gustaría hacer es mostrar los promedios en un diagrama de línea (versus fecha). Mi problema es que, si aplico el resumen normal "promedio" en los datos, calcula el promedio de todos los datos del período dado (basado en el nivel de jerarquía).

Un ejemplo:

Normalmente 1 medición se realiza en un día. Eso es 30-31 en un mes, 356 en un año. Sin embargo, en verano, los valores son más altos, por lo que a veces se realizan más mediciones, ocasionalmente incluso 4 por hora. Eso puede ser hasta 96 récord al día. Si se calcula el promedio anual, algunos días de verano pueden tirar del valor mucho más alto de lo que deberían - que da algunos datos inutilizables.

Lo que necesito es, calcular el promedio diario para cada día, que calcular el promedio mensual de los promedios diarios de ese mes, promedio anual de los promedios mensuales de ese año, y luego un promedio "total" de los promedios anuales. Me gustaría usarlo en un diagrama de línea mientras mantiene las jerarquías de fechas (y desglose) utilizables.

¿Cómo puedo hacer eso? He leído algunos mensajes que mencionan la función averagex, pero no pude encontrar la solución, ¿se puede usar en mi caso?

Gracias por su ayuda por adelantado!

1 ACCEPTED SOLUTION
MFelix
Super User
Super User

Hola @MasterPG5 ,

Lo que necesita usar es una fórmula de agregador.

Las fórmulas de agregador (las que terminan en X) hacen que el cálculo basado en cada línea de una tabla lo que esto significa es que si usted está haciendo el promedio de valores para cada línea, recogerá los valores y lo utilizará para calcular el promedio.

Recogiendo su ejemplo:

Día Valor
1 10
1 11
1 9
2 12
3 13

Si usted hace justo el promedio que obtendrá:

(10+11+9+12+13)/ 5 á 11

si utiliza el agregador en el nivel de día lo que obtendrá:

((10+11+9)/3) + (12 / 1) + (13/1) a 11,66

Así que básicamente necesitas hacer el promedio de los promedios basados en el día. Habiendo hecho la explicación teórica de la medida que necesita crear es la siguiente:

Average = AVERAGEX(Table; AVERAGE(Table[Column])

No estoy seguro de si tiene una tabla de calendario, pero si lo hace necesita usarla para el primer parámetro, utilice la columna para la que desea realizar el cálculo.

Al ser una medida, esto se calculará en función del contexto, por lo que cuando suba y luego la jerarquía (año, mes, día) los cálculos se ajustarán.


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



View solution in original post

5 REPLIES 5
MFelix
Super User
Super User

Hola @MasterPG5 ,

Lo que necesita usar es una fórmula de agregador.

Las fórmulas de agregador (las que terminan en X) hacen que el cálculo basado en cada línea de una tabla lo que esto significa es que si usted está haciendo el promedio de valores para cada línea, recogerá los valores y lo utilizará para calcular el promedio.

Recogiendo su ejemplo:

Día Valor
1 10
1 11
1 9
2 12
3 13

Si usted hace justo el promedio que obtendrá:

(10+11+9+12+13)/ 5 á 11

si utiliza el agregador en el nivel de día lo que obtendrá:

((10+11+9)/3) + (12 / 1) + (13/1) a 11,66

Así que básicamente necesitas hacer el promedio de los promedios basados en el día. Habiendo hecho la explicación teórica de la medida que necesita crear es la siguiente:

Average = AVERAGEX(Table; AVERAGE(Table[Column])

No estoy seguro de si tiene una tabla de calendario, pero si lo hace necesita usarla para el primer parámetro, utilice la columna para la que desea realizar el cálculo.

Al ser una medida, esto se calculará en función del contexto, por lo que cuando suba y luego la jerarquía (año, mes, día) los cálculos se ajustarán.


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



¡Muchas gracias por su ayuda! De hecho, tengo una respuesta ya en el foro Inglés (ni siquiera sé por qué mi pregunta apareció aquí...), pero su solución también es perfecta.

¡Gracias, tío!

Anonymous
Not applicable

Está intentando crear una medida que se calculará de forma diferente en diferentes niveles de una jerarquía. Por lo tanto, esta medida estará estrechamente conectada a esta jerarquía y no se debe usar con ningún otro nivel: solo: Fecha, Mes y Año. Si lo usa en un nivel diferente, el cálculo será incorrecto. En DAX, las jerarquías no son un punto fuerte. Aquí está la medida, pero no debe usarlo con ningún otro nivel que el 3 mencionado. Si desea calcular en cualquier otro nivel (por ejemplo, para todos los años como el promedio de la medida para los años), debe realizar cambios en él.

// Hidden measure
[_AverageInOneDay] =
 AVERAGE( Data[Measurement] )

// Hidden measure
[_AverageInOneMonth] =
 AVERAGEX(
  VALUES( Calendar[Date] ),
  [_AverageInOneDay]
 )
 
// Hidden measure
[_AverageInOneYear] =
 AVERAGEX(
  VALUES( Calendar[Year Month] ),
  [_AverageInOneMonth]
 )
 
// Final measure exposed
[Measurement] =
SWITCH( true(),
 ISINSCOPE( Calendar[Date] ),
  [_AverageInOneDay],
 ISINSCOPE( Calendar[Year Month] ),
  [_AverageInOneMonth],
 ISINSCOPE( Calendar[Year] ),
  [_AverageInOneYear]
)

Mejor

D

¡Muchas gracias! Exactamente lo que necesitaba.

Sólo una pregunta: No entiendo completamente los mecanismos con tablas de fechas. Dijiste que no debería usar la última medida en ningún nivel excepto el día, mes, año. Creo que esto no es nada, pero también está trabajando con YearMonth en lugar de Month, dando el mismo resultado. ¿Es este el comportamiento esperado?

Gracias
MasterPG

Anonymous
Not applicable

Por favor, tenga en cuenta que cuando digo 'Mes del Año' significa que usted tiene que tener exactamente un mes expuesto de un año. No puedes simplemente dejar caer el nombre de un mes porque enero está presente en todos los años. Tienes que tener algo así como 2020-enero, ya que esto identifica el mes de forma única en todo el Calendario. Por supuesto, si coloca una jerarquía en una matriz: Año -> Mes -> Fecha, calculará OK porque en cada nivel una fecha será visible o exactamente un mes o exactamente un año. Se trata de todo: tienes que asegurarte de que en el contexto actual solo uno de esos objetos sea visible. Entonces y sólo entonces el cálculo será correcto.

Por supuesto, podría usar una gran cantidad de código condicional para asegurarse de que la medida no devuelve nada cuando se ha detectado algo más que los tres objetos, pero no estoy seguro de que necesite esto. Mientras sepas usar la medida, estarás a salvo. Pero, por otro lado, si desea exponer esta medida a los usuarios finales para que sean libres de usarla, entonces es de suma importancia hacer que la medida se comporte correctamente en todas las circunstancias.

Mejor
D

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.