Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
5 years ago
Solved

Valores Delta

Hola

¿Cómo calcularía los valores Delta derivados de una fecha en combinación con ID:

DateIDValoresDelta-values
DD-MM-AAAA 12:00188
DD-MM-AAAA 12:00223
DD-MM-AAAA 12:151891
DD-MM-AAAA 12:152252
  • Anonymous's avatar
    Anonymous
    5 years ago

    Hola @Blaest ,

    Estos son los pasos que puede seguir:

    1. Aumente el índice a través de la consulta de potencia

    v-yangliu-msft_0-1605673882153.png

    2. Cree una columna calculcada.

    Delta-values =
    var _lastindex=
    CALCULATE(MAX('Table'[Index]),FILTER(ALL('Table'),[Metern]=EARLIER([Metern])&&[Index]<EARLIER([Index])))
    
    var _lastdata=
    CALCULATE(SUM('Table'[Data]),FILTER('Table',[Index]=_lastindex))
    
    return IF(_lastindex=BLANK(),BLANK(),[Data]-_lastdata)

    3. Resultado.

    v-yangliu-msft_1-1605673882155.png

    Puede descargar el archivo PBIX desde aquí.

    Saludos

    Liu Yang

    Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

9 Replies

  • @Blaest , Probar fórmula

    Column = var _1 = MAXX(FILTER('Table',[ID] =EARLIER('Table'[ID]) && [Date] <EARLIER('Table'[Date])), LASTNONBLANKVALUE('Table'[Date],'Table'[Values]))
    return if( ISBLANK(_1), BLANK(),[Values]-_1)
  • Anonymous's avatar
    Anonymous
    Not applicable

    Hola @Blaest ,

    Estos son los pasos que puede seguir:

    1. Cree una columna calculcada.

    Delta-values =
    var _max=MAX('Table'[Date])
    var _min=MIN('Table'[Date])
    var _1=
    CALCULATE(SUM('Table'[Values]),FILTER('Table','Table'[Date]=_max&&'Table'[ID]=EARLIER('Table'[ID])))
    -
    CALCULATE(SUM('Table'[Values]),FILTER('Table','Table'[Date]=_min&&'Table'[ID]=EARLIER('Table'[ID])))
    
    return IF('Table'[Date]=_min,BLANK(),_1)
    

    2. Resultado.

    v-yangliu-msft_0-1605519209396.jpeg

    Puede descargar el archivo PBIX desde aquí.

    Saludos

    Liu Yang

    Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

    • Anonymous's avatar
      Anonymous
      Not applicable

      Gracias Liu,

      Seguí sus pasos, y también terminé con una columna - sin embargo los valores parecen incorrectos y no refleja el valor delta esperado como en su ejemplo,

      ¿Dónde me equivoqué?

      2020-11-16_13-23-16.jpg

  • Anonymous's avatar
    Anonymous
    Not applicable

    El hecho de que puedas hacer algo no significa que debas hacerlo. Estas transformaciones de datos se realizan mejor (¡y son fáciles!) en Power Query. DAX debe utilizarse para crear columnas calculadas solo como el último recurso. Hay muchas razones detrás de esto, dos de ellas son mala compresión y la hinchazón del modelo si se hace a través de DAX. Utilice Power Query, la herramienta adecuada para el trabajo.

    • Anonymous's avatar
      Anonymous
      Not applicable

      Daxer,

      Todo eso tiene sentido,

      Sin embargo, todavía necesitaría el código DAX para ello,

      Cualquier entrada para el código DAX muy apreciado!

      • Anonymous's avatar
        Anonymous
        Not applicable

        No, you don't need DAX. You need M - the language of Power Query. That's the whole point. DAX is for data analysis. M is for data munging.

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hola @Blaest ,

    Estos son los pasos que puede seguir:

    1. Aumente el índice a través de la consulta de potencia

    v-yangliu-msft_0-1605673882153.png

    2. Cree una columna calculcada.

    Delta-values =
    var _lastindex=
    CALCULATE(MAX('Table'[Index]),FILTER(ALL('Table'),[Metern]=EARLIER([Metern])&&[Index]<EARLIER([Index])))
    
    var _lastdata=
    CALCULATE(SUM('Table'[Data]),FILTER('Table',[Index]=_lastindex))
    
    return IF(_lastindex=BLANK(),BLANK(),[Data]-_lastdata)

    3. Resultado.

    v-yangliu-msft_1-1605673882155.png

    Puede descargar el archivo PBIX desde aquí.

    Saludos

    Liu Yang

    Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.