Forum Discussion

renanc's avatar
renanc
Icon for Helper II rankHelper II
4 years ago
Solved

Calculate the values between two lines

Hi everybody, I have a calculated value on Dax, but it calculates the value between the current fuel fill and the next one. I want to calculate the value between the current fuel fill and the previous one. Can abybody help me with this, please?

The Dax formula used is here, and attachet below.

Thank you

Diferenca KM =
var _min =
CALCULATE(
FIRSTNONBLANK(fChecklists[IdChecklist],0),
FILTER(
ALL(fChecklists),
fChecklists[IdChecklist] > EARLIER([IdChecklist])
&& fChecklists[DescPlaca]=EARLIER([DescPlaca])
&& fChecklists[DtCadastro] >= EARLIER([DtCadastro])
&& fChecklists[IdQuestionario] = EARLIER([IdQuestionario])
)
)
return
CALCULATE(
MIN([Digite a KM]),
FILTER(
ALL(fChecklists),
fChecklists[IdChecklist] = _min
&& fChecklists[DescPlaca]=EARLIER([DescPlaca])
&& fChecklists[IdQuestionario] = EARLIER([IdQuestionario])
)
) - [Digite a KM]


 

  • renanc's avatar
    renanc
    4 years ago

    Hi Anonymous I found the solution for this case, it was:

    KM Anterior =
    VAR Ultimo_Checklist =
    CALCULATE(
    MAX(fChecklists2[IdChecklist]),
    FILTER(
    ALL(fChecklists2),
    (fChecklists2[DescPlaca])=EARLIER([DescPlaca])
    && fChecklists2[IdChecklist] < EARLIER([IdChecklist])
    && fChecklists2[IdQuestionario] = EARLIER([IdQuestionario])
    && fChecklists2[DtCadastro] <= EARLIER([DtCadastro])
    )
    )

    VAR KM_Anterior =
    CALCULATE(
    MAX(fChecklists2[Digite a KM]),
    FILTER(
    ALL(fChecklists2),
    fChecklists2[IdChecklist] = Ultimo_Checklist
    )
    )

    RETURN
    KM_Anterior

4 Replies

  • You can try

    Diferenca KM =
    VAR _max =
        CALCULATE (
            LASTNONBLANK ( fChecklists[IdChecklist], 0 ),
            FILTER (
                ALL ( fChecklists ),
                fChecklists[IdChecklist] < EARLIER ( [IdChecklist] )
                    && fChecklists[DescPlaca] = EARLIER ( [DescPlaca] )
                    && fChecklists[DtCadastro] >= EARLIER ( [DtCadastro] )
                    && fChecklists[IdQuestionario] = EARLIER ( [IdQuestionario] )
            )
        )
    RETURN
        CALCULATE (
            MIN ( [Digite a KM] ),
            FILTER (
                ALL ( fChecklists ),
                fChecklists[IdChecklist] = _max
                    && fChecklists[DescPlaca] = EARLIER ( [DescPlaca] )
                    && fChecklists[IdQuestionario] = EARLIER ( [IdQuestionario] )
            )
        ) - [Digite a KM]
  • Hi johnt75, actually it did not work. In the new column (Diferenca KM 2), the values are negative values of those we have in Digite a KM.  Probably the term inside 

    CALCULATE (
            MIN ( [Digite a KM] ),
            FILTER (
                ALL ( fChecklists ),
                fChecklists[IdChecklist] = _max
                    && fChecklists[DescPlaca] = EARLIER ( [DescPlaca] )
                    && fChecklists[IdQuestionario] = EARLIER ( [IdQuestionario] )
            )

    is returning 0 or a null value, and then subtracting [Digite a KM].

    Thank you for your help

     

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi renanc ,

     

    Please share some sample data so that we could test the formula on it.

     

    Best Regards,

    Jay

    • renanc's avatar
      renanc
      Icon for Helper II rankHelper II

      Hi Anonymous I found the solution for this case, it was:

      KM Anterior =
      VAR Ultimo_Checklist =
      CALCULATE(
      MAX(fChecklists2[IdChecklist]),
      FILTER(
      ALL(fChecklists2),
      (fChecklists2[DescPlaca])=EARLIER([DescPlaca])
      && fChecklists2[IdChecklist] < EARLIER([IdChecklist])
      && fChecklists2[IdQuestionario] = EARLIER([IdQuestionario])
      && fChecklists2[DtCadastro] <= EARLIER([DtCadastro])
      )
      )

      VAR KM_Anterior =
      CALCULATE(
      MAX(fChecklists2[Digite a KM]),
      FILTER(
      ALL(fChecklists2),
      fChecklists2[IdChecklist] = Ultimo_Checklist
      )
      )

      RETURN
      KM_Anterior