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 trabajando en un conjunto de datos, que incluye información de unos 30 metros. Estos medidores actuaron como contadores (leer datos, a continuación, añadir los valores en los anteriores lo que significa que todo el tiempo aumenta - por favor, mire los gráficos). Recibo esta información cada hora. Entonces necesito calcular el valor absoluto para esa hora. Para alcanzar este objetivo necesito restar cada fila de la fila anterior. ¿Puedo crear una medida general y usarla para cada una de las 30 columnas? Por favor, ¿puede compartir cualquier fórmula de ejemplo en DAX que pueda usar? ¿Cuál es la mejor y más eficiente manera de lidiar con esto?
Solved! Go to Solution.
Hola @ehsanbh ,
Perdón por responder tarde.
Para la pregunta 1:
Si tiene alrededor de 25-30 parámetros similares en este conjunto de datos, podría considerar la creación de medida en lugar de columna calculada para realizar esto porque la columna calculada ocupará la memoria real. La medida será así:
Measure =
VAR a =
SUM ( 'Table'[Index] ) - 1
VAR previous =
CALCULATE (
MAX ( 'Table'[EL,AX12(MWh)] ),
FILTER ( ALL ( 'Table' ), 'Table'[Index] = a )
)
RETURN
IF ( ISBLANK ( previous ), 0, SUM ( 'Table'[EL,AX12(MWh)] ) - previous )
Para la pregunta 2:
Columna calculada:
Column =
VAR _lastrow =
CALCULATE (
SUM ( 'Table'[EL,AX12(MWh)] ),
FILTER ( ALL ( 'Table' ), 'Table'[Index] = EARLIER ( 'Table'[Index] ) - 1 )
)
RETURN
IF ( ISBLANK ( _lastrow ), 0, [EL,AX12(MWh)] - _lastrow )
La medida está en lo anterior. Aquí está el resultado mediante el uso de la medida:
Adjunto un archivo de muestra en el siguiente, espera ayudarle.
Best Looks,
Yingjie Li
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
@ehsanbh , La información que ha proporcionado no está des aclarando el problema para mí. Por favor, puede explicar con un ejemplo.
No hay nada como la fila anterior en Power BI. Ahora si usted mide /paso /año /semana no. O cualquier no incremental o rango que puede usar rango o número para la fila anterior. La condición es que usted tiene que mover eso a una nueva tabla y usarlo para construir la actual anterior
ejemplo en el caso de la semana (paso/metro). Una nueva columna en la tabla semana/fecha
nueva columna
Rango de la semana - RANKX(all('Date'),'Date'[Week Start date],,ASC,Dense)
nuevas medidas
Esta semana: CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]-max('Date'[Week Rank])))
Last Week ? CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]-max('Date'[Week Rank])-1))
Apreciamos tus Felicitaciones.
Sorry to be confusing! Here is one example. I guess I have solved it half a way! I have EL, AX12 (MWh), which is electricity meter values (adding on previous value on hourly base) and I need a new column for absolute consumption for each specific hour. In this case I need to subtract the value of each row from the previous one.
I have used below DAX formula for a new calculated column and actually it works to some extent:
EL, AX12, abs =
raw_measurement[EL, AX12 (MWh)]
- CALCULATE (
SUM ( raw_measurement[EL, AX12 (MWh)] ),
FILTER ( raw_measurement, raw_measurement[Index] = EARLIER ( raw_measurement[Index] ) - 1 )
)
Two questions:
1- I have around 25-30 similar parameters in this data set. Is this the way to go forward? I mean creating a calculated column for each parameter? Or is there a more efficient way to perform this?
2- As you see the first value has not been changed. How can I change the code to have zero for the first value?
Hola @ehsanbh ,
Perdón por responder tarde.
Para la pregunta 1:
Si tiene alrededor de 25-30 parámetros similares en este conjunto de datos, podría considerar la creación de medida en lugar de columna calculada para realizar esto porque la columna calculada ocupará la memoria real. La medida será así:
Measure =
VAR a =
SUM ( 'Table'[Index] ) - 1
VAR previous =
CALCULATE (
MAX ( 'Table'[EL,AX12(MWh)] ),
FILTER ( ALL ( 'Table' ), 'Table'[Index] = a )
)
RETURN
IF ( ISBLANK ( previous ), 0, SUM ( 'Table'[EL,AX12(MWh)] ) - previous )
Para la pregunta 2:
Columna calculada:
Column =
VAR _lastrow =
CALCULATE (
SUM ( 'Table'[EL,AX12(MWh)] ),
FILTER ( ALL ( 'Table' ), 'Table'[Index] = EARLIER ( 'Table'[Index] ) - 1 )
)
RETURN
IF ( ISBLANK ( _lastrow ), 0, [EL,AX12(MWh)] - _lastrow )
La medida está en lo anterior. Aquí está el resultado mediante el uso de la medida:
Adjunto un archivo de muestra en el siguiente, espera ayudarle.
Best Looks,
Yingjie Li
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Muchas gracias, muy bueno el código. Se agradece mucho.
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.