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.
Estoy tratando de hacer un análisis de cambios y por lo tanto necesito calcular el cambio de fechas anteriores. He visto varios ejemplos de ding esto donde los datos son un formato "conveniente", ya parcialmente resumido, pero eso no funcionará para este escenario, ya que los datos podrían ser cortados de otras maneras.
Así que tengo la mesa algo como:
Fecha | Ref | Esperado | Actual |
01/01/2020 | Afa | 2 | 3 |
01/01/2020 | Ssf | 3 | 4 |
04/01/2020 | Temor | 4 | 4 |
08/01/2020 | Daq | 4 | 3 |
08/01/2020 | Dos | 1 | 2 |
09/01/2020 | Asw | 2 | 3 |
Hay fechas repetidas y fechas perdidas.
Quiero comparar Real con Esperado para calcular un FACTOR para cada fila, y he hecho esto con ambas medidas y columnas calculadas ok.
Fecha | Ref | Esperado | Actual | Factor |
01/01/2020 | Afa | 2 | 3 | 1.5 |
01/01/2020 | Ssf | 3 | 4 | 1.33 |
04/01/2020 | Temor | 4 | 4 | 1 |
08/01/2020 | Daq | 4 | 3 | .75 |
08/01/2020 | Dos | 1 | 2 | 2 |
09/01/2020 | Asw | 6 | 3 | 0.5 |
A continuación quiero ver el FACTOR promedio para cada día en los datos, y para hacer que he creado un Meaure,
AVF - calculate(average('tblPackets'[propTime]))
... que funciona bien:
Fecha | Avf |
01/01/2020 | 1.41 |
04/01/2020 | 1 |
08/01/2020 | 1.38 |
09/01/2020 | 0.5 |
Fecha | Avf | PrevAVF |
01/01/2020 | 1.41 | |
04/01/2020 | 1 | 1.41 |
08/01/2020 | 1.38 | 1 |
09/01/2020 | 0.5 | 1.38 |
Por supuesto, una vez hecho esto quiero ir otro paso a Dividir AVF con PrevAVF, y finalmente sumar esos números, pero creo que este es el punto de adherencia en ese viaje.
Como dije, la mayoría de los ejemplos que he encontrado ya tienen los datos en este tipo de strucutre, pero como esta tabla ya está derivada, esas tácticas no funcionan. ¿Es esto posible ???
Solved! Go to Solution.
De acuerdo...
Promedio de var %
AVERAGEX(
VALUES(factData[Date]),
[Var % AVF]
)
Descargue el archivo PBIX
EnateJon,
Primero creé la medida FACTOR:
Factor (Factor)
var vTotal_Expected - SUM(factData[Expected])
var vTotal_Actual - SUM(factData[Actual])
devolución
DIVIDE(
vTotal_Actual,
vTotal_Expected
)
Luego creé la medida AVF:
AVF ( AVF)
AVERAGEX(
factData,
[Factor]
)
Luego creé la medida "AVF Previous":
AVF anterior ?
var vActualDate á MAX(factData[Date])
var vDate_Previous ?
CALCULATE(
MAX(factData[Fecha]),
FILTRO(
ALL(factData[Date]),
factData[Date] < vActualDate
)
)
var vAVF_Date_Previous ?
CALCULATE(
[AVF],
FILTRO(
ALL(factData[Date]),
factData[Fecha] - vDate_Previous
)
)
devolución
vAVF_Date_Previous
Y finalmente creé la medida "Var % AVF":
Var % AVF ?
DIVIDE(
[AVF] - [AVF anterior],
[AVF anterior]
)
Aquí está la imagen con la solución
Aquí está el archivo PBIX
Att
Tulio Melibeu
Esto es genial - gracias. A un paso de la respuesta final, y no he podido llegar allí :o(
El último paso es calcular (y mostrar en una tarjeta) el PROMEDIO de todos los valores del "Var % AVF" para ver si está subiendo o bajando.
He intentado AVERAGE, pero sólo tomará una columna (¿no un meaure?) y AVERAGEX(table, [Var % AVF]) no devuelve nada.
Tan cerca....
Hola, @EnateJon
No está completamente seguro de cuál es su última pregunta, ¿puede elaborar un poco más?
Proporcione algunas capturas de pantalla para explicar lo que está tratando de hacer.
Será mejor si puede mostrar su resultado exceptuado sobre el PROMEDIO de todos los valores de la "Var % AVF" .
Saludos
Equipo de soporte de la comunidad _ Eason
De acuerdo...
Promedio de var %
AVERAGEX(
VALUES(factData[Date]),
[Var % AVF]
)
Descargue el archivo PBIX
Esta es la única parte de la solución que no he podido seguir. Intuitivamente habría escrito:
Promedio de var %- AVERAGEX(factData, [Var % AVF])
Pero eso no devuelve nada (¿No puedo ver por qué?).
¿Qué hace "Values(table[field])" y por qué se necesita aquí?
Muchas gracias por esto. Soy bastante nuevo en DAX (como habrás adivinado) y no lo encuentro cómicamente intuitivo. Mirando lo que has sugerido puedo empezar a realizar ingeniería inversa de estos - realmente útil. Gracias de nuevo.
@EnateJon- No estoy seguro de por qué AVERAGEX en toda la variable de tabla no funcionaría. Más o menos un problema de agregación de medida. Vea mi artículo de blog sobre eso aquí: https://community.powerbi.com/t5/Community-Blog/Design-Pattern-Groups-and-Super-Groups/ba-p/138149
El patrón es:
MinScoreMeasure ? MINX ( SUMMARIZE ( Tabla, Tabla[Grupo] , "Medida",[SuMeasure] ), [Medida])
MaxScoreMeasure ? MAXX ( SUMMARIZE ( Tabla, Tabla[Grupo] , "Medida",[SuMeasure] ), [Medida])
AvgScoreMeasure - AVERAGEX ( SUMMARIZE ( Tabla, Tabla[Grupo] , "Medida",[SuMeasure] ), [Medida])
etcetera.
@EnateJon: debería poder crear una variable de tabla en una medida y usar ADDCOLUMNS junto con EARLIER. Puedes hacerlo de verdad aquí. Vea mi artículo sobre el tiempo medio entre fallas (MTBF) que utiliza ANTES: http://community.powerbi.com/t5/Community-Blog/Mean-Time-Between-Failure-MTBF-and-Power-BI/ba-p/3395...
Obviamente, eso se implementa como columnas, pero es lo mismo cuando se crea y se trabaja con una variable de tabla en DAX.
@EnateJon, pruebe con el calendario de fechas
Last Day Non Continuous ? CALCULATE(sum(Table[Real]),filter(ALLSELECTED('Date'),'Date'[Date] ?MAXX(FILTER(ALLSELECTED('Date'),'Date'[Date]<max('Date'[Date])),'Date'[Date])))
referenciar tanto la columna como el enfoque de medida en el blog
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |