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
Anonymous
Not applicable

Restar dos filas

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?

01.JPG

1 ACCEPTED 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:

result.png

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.

View solution in original post

4 REPLIES 4
amitchandak
Super User
Super User

@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.


Anonymous
Not applicable

@amitchandak 

 

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 )

   )

 

02.JPG

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:

result.png

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.

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.