Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

DAX QUERY FOR FILL DOWN



Hi Professionals..!!

 

Need help in understanding the dax for getting the last column data as measure, basically it is a fill down in dax.

  • Hi,

    Please check the below and the attached pbix file.

    Those are for both creating a measure and a calculated column.

     

    Desired measure: = 
    VAR currentrows =
        MAX ( Data[Rows] )
    VAR currentdate =
        MAX ( Data[Date] )
    VAR startdate =
        MINX (
            FILTER ( ALL ( Data ), Data[Rows] = currentrows && Data[NewMC] <> BLANK () ),
            Data[Date]
        )
    VAR previousdate =
        MAXX (
            FILTER (
                ALL ( Data ),
                Data[Rows] = currentrows
                    && Data[Date] <= currentdate
                    && Data[NewMC] <> BLANK ()
            ),
            Data[Date]
        )
    VAR previousvalue =
        MAXX (
            FILTER ( ALL ( Data ), Data[Rows] = currentrows && Data[Date] = previousdate ),
            Data[NewMC]
        )
    RETURN
        IF (
            HASONEVALUE ( Data[Rows] ),
            IF ( MAX ( Data[Date] ) = startdate, SUM ( Data[NewMC] ), previousvalue )
        )
    

     

    Desired CC = 
    VAR currentrows = Data[Rows]
    VAR currentdate = Data[Date]
    VAR startdate =
        MINX (
            FILTER ( Data, Data[Rows] = currentrows && Data[NewMC] <> BLANK () ),
            Data[Date]
        )
    VAR previousdate =
        MAXX (
            FILTER (
                Data,
                Data[Rows] = currentrows
                    && Data[Date] <= currentdate
                    && Data[NewMC] <> BLANK ()
            ),
            Data[Date]
        )
    VAR previousvalue =
        MAXX (
            FILTER ( Data, Data[Rows] = currentrows && Data[Date] = previousdate ),
            Data[NewMC]
        )
    RETURN
        IF ( Data[Date] = startdate, Data[NewMC], previousvalue )

     

  • Hi,

    Your pbix file has a page-filter.

    Please try the below and check the attached file.

     

    Mydesire = 
    VAR currentrows =
        MAX ( Mydata[Rows] )
    VAR currentdate =
        MAX ( Mydata[Date] )
    VAR startdate =
        MINX (
            FILTER ( ALLSELECTED( Mydata ), Mydata[Rows] = currentrows && Mydata[NewMC] <> BLANK () ),
            Mydata[Date]
        )
    VAR previousdate =
        MAXX (
            FILTER (
                ALLSELECTED ( Mydata ),
                Mydata[Rows] = currentrows
                    && Mydata[Date] <= currentdate
                    && Mydata[NewMC] <> BLANK ()
            ),
            Mydata[Date]
        )
    VAR previousvalue =
        MAXX (
            FILTER ( ALLSELECTED ( Mydata ), Mydata[Rows] = currentrows && Mydata[Date] = previousdate ),
            Mydata[NewMC]
        )
    RETURN
        IF (
            HASONEVALUE ( Mydata[Rows] ),
            IF ( MAX ( Mydata[Date] ) = startdate, SUM ( Mydata[NewMC] ), previousvalue )
        )

4 Replies

  • Hi,

    Please check the below and the attached pbix file.

    Those are for both creating a measure and a calculated column.

     

    Desired measure: = 
    VAR currentrows =
        MAX ( Data[Rows] )
    VAR currentdate =
        MAX ( Data[Date] )
    VAR startdate =
        MINX (
            FILTER ( ALL ( Data ), Data[Rows] = currentrows && Data[NewMC] <> BLANK () ),
            Data[Date]
        )
    VAR previousdate =
        MAXX (
            FILTER (
                ALL ( Data ),
                Data[Rows] = currentrows
                    && Data[Date] <= currentdate
                    && Data[NewMC] <> BLANK ()
            ),
            Data[Date]
        )
    VAR previousvalue =
        MAXX (
            FILTER ( ALL ( Data ), Data[Rows] = currentrows && Data[Date] = previousdate ),
            Data[NewMC]
        )
    RETURN
        IF (
            HASONEVALUE ( Data[Rows] ),
            IF ( MAX ( Data[Date] ) = startdate, SUM ( Data[NewMC] ), previousvalue )
        )
    

     

    Desired CC = 
    VAR currentrows = Data[Rows]
    VAR currentdate = Data[Date]
    VAR startdate =
        MINX (
            FILTER ( Data, Data[Rows] = currentrows && Data[NewMC] <> BLANK () ),
            Data[Date]
        )
    VAR previousdate =
        MAXX (
            FILTER (
                Data,
                Data[Rows] = currentrows
                    && Data[Date] <= currentdate
                    && Data[NewMC] <> BLANK ()
            ),
            Data[Date]
        )
    VAR previousvalue =
        MAXX (
            FILTER ( Data, Data[Rows] = currentrows && Data[Date] = previousdate ),
            Data[NewMC]
        )
    RETURN
        IF ( Data[Date] = startdate, Data[NewMC], previousvalue )

     

    • Jihwan_Kim's avatar
      Jihwan_Kim
      Icon for Super User rankSuper User

      Hi,

      Your pbix file has a page-filter.

      Please try the below and check the attached file.

       

      Mydesire = 
      VAR currentrows =
          MAX ( Mydata[Rows] )
      VAR currentdate =
          MAX ( Mydata[Date] )
      VAR startdate =
          MINX (
              FILTER ( ALLSELECTED( Mydata ), Mydata[Rows] = currentrows && Mydata[NewMC] <> BLANK () ),
              Mydata[Date]
          )
      VAR previousdate =
          MAXX (
              FILTER (
                  ALLSELECTED ( Mydata ),
                  Mydata[Rows] = currentrows
                      && Mydata[Date] <= currentdate
                      && Mydata[NewMC] <> BLANK ()
              ),
              Mydata[Date]
          )
      VAR previousvalue =
          MAXX (
              FILTER ( ALLSELECTED ( Mydata ), Mydata[Rows] = currentrows && Mydata[Date] = previousdate ),
              Mydata[NewMC]
          )
      RETURN
          IF (
              HASONEVALUE ( Mydata[Rows] ),
              IF ( MAX ( Mydata[Date] ) = startdate, SUM ( Mydata[NewMC] ), previousvalue )
          )