Forum Discussion

nirvana_moksh's avatar
nirvana_moksh
Impactful Individual
8 years ago
Solved

DAX To M Query

Hey All,

 

I had a question in regards to changing the below DAX to M and if it is possible:

 

CALCULATE(LASTNONBLANK('Table A'[Column 1],1),FILTER('Table A','Table A'[Index] = MIN('Table A'[Index])))

 

 

The above DAX basically finds the latest COLUMN 1 value using the Index column I have set up, I want to do this in M query so that I can limit data from right there instead of using the above DAX.

 

 

Thank You

  • Hi nirvana_moksh

    As tested, I add an index column from 1.

    Code in Advanced Editor

    let

        Source = Excel.Workbook(File.Contents("C:\Users\maggiel\Desktop\PR4.0\5\5.29\Circular dependancy.xlsx"), null, true),

        Sheet1_Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data],

        #"Promoted Headers" = Table.PromoteHeaders(Sheet1_Sheet, [PromoteAllScalars=true]),

        #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"taskId", Int64.Type}, {"startupGoalDate", type date}, {"duration", Int64.Type}}),

        #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 1, 1),

        #"Added Conditional Column1" = Table.AddColumn(#"Added Index", "min", each List.Min(Table.Column(#"Added Index","Index"))),

        #"Added Conditional Column2" = Table.AddColumn(#"Added Conditional Column1","Custom", each if [Index]=[min]  then List.Last(Table.Column(#"Added Index","duration")) else null) 

    in

    #"Added Conditional Column2"

     

    Something easier to do with DAX maybe complex with M query,

    Reference:

    List.Last

    Table.SelectRows

    Table.SelectColumns

     

    Best Regards

    Maggie

2 Replies

  • v-juanli-msft's avatar
    v-juanli-msft
    Community Support

    Hi nirvana_moksh

    As tested, I add an index column from 1.

    Code in Advanced Editor

    let

        Source = Excel.Workbook(File.Contents("C:\Users\maggiel\Desktop\PR4.0\5\5.29\Circular dependancy.xlsx"), null, true),

        Sheet1_Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data],

        #"Promoted Headers" = Table.PromoteHeaders(Sheet1_Sheet, [PromoteAllScalars=true]),

        #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"taskId", Int64.Type}, {"startupGoalDate", type date}, {"duration", Int64.Type}}),

        #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 1, 1),

        #"Added Conditional Column1" = Table.AddColumn(#"Added Index", "min", each List.Min(Table.Column(#"Added Index","Index"))),

        #"Added Conditional Column2" = Table.AddColumn(#"Added Conditional Column1","Custom", each if [Index]=[min]  then List.Last(Table.Column(#"Added Index","duration")) else null) 

    in

    #"Added Conditional Column2"

     

    Something easier to do with DAX maybe complex with M query,

    Reference:

    List.Last

    Table.SelectRows

    Table.SelectColumns

     

    Best Regards

    Maggie

    • nirvana_moksh's avatar
      nirvana_moksh
      Impactful Individual

      Thank you, I will try this out and check the output