Forum Discussion

TimQ's avatar
TimQ
Icon for Helper I rankHelper I
6 years ago
Solved

Use DAX to transpose column values based on relative date

I need to transpose or unpivot text values into separate columns based on relative date. My data looks like this:

Unique IDDateComment
17/1/2019aaaaa
18/1/2019bbbbb
19/1/2019ccccc
27/1/2019ddddd
28/1/2019eeeee
29/1/2019fffff
37/1/2019ggggg
38/1/2019hhhhh
39/1/2019iiiii


I need to create separate columns that return the most recent, 2nd most recent, third most recent values in the Comment column based on the Date field per Unique ID. My end result would look something like this:

Unique IDMost Recent Comment2nd Most Recent CommentThird Most Recent Comment
1cccccbbbbbaaaaa
2fffffeeeeeddddd
3iiiiihhhhhggggg


I realize that the easiest way to address this is with the Query Editor, but unique circumstances require me to use DAX and calculated columns only. 

How would I go about creating these calculated columns?

3 Replies

  • v-diye-msft's avatar
    v-diye-msft
    Icon for Community Support rankCommunity Support

    Hi TimQ 

     

    Try below M code:

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("VczLCYAwEIThXuYciBsPmlrCHnxr/w3oRNhs/tPAB1MKBAFTlJgGyd9cGDT8MDdYmUFusLEKqb/amYG7OpiBuzpZhbG/upiBu7qZgbt6GFRf", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Unique ID" = _t, Date = _t, Comment = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Unique ID", Int64.Type}, {"Date", type date}, {"Comment", type text}}),
        #"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(#"Changed Type", {{"Date", type text}}, "en-US"), List.Distinct(Table.TransformColumnTypes(#"Changed Type", {{"Date", type text}}, "en-US")[Date]), "Date", "Comment")
    in
        #"Pivoted Column"

    Pbix attached.

    • TimQ's avatar
      TimQ
      Icon for Helper I rankHelper I

      Thanks. This solution seems like it would work but due to a weird network circumstance I am unable to transform my data table in the query editor, so my solution would have to be executed as a series of DAX calculated columns in a visual.