Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

How to Create data table from row data in power query

Hello Sir,

 

I wish to create table like below table in power query with same below results. Also please note i have not added week of the month in smaple data sheet b'coz i want to learn to create it in power query and in table.

 

once the result table get created, want to filter table with max granc total of the month. 

 

 

https://1drv.ms/x/s!Ai3rGPgy20kLwXL2cj0-2zXoR1b8?e=vb8D3A

 

  • Hi Anonymous ,

    You could use the function of  List.Max  and List.Min. Try the code below. 

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("VZDBDcMwDAN3ybtAZUmW3VmK7r9GQ7ZhoA8N+GJRuff78Od4uo19PI5hdqbbeXweIH4R/xEXCb2ZJPkneU87v0aWyD0tJ3KLaJqvOjNMJC8StpDXBvvuiWCmiHqiXkwR9ST/J7aIejLGj19kipQjbwfcAA35CmR2byDTky+7N5IJB7lFUmTDwbRuFKTG4sxulCSx4cxulGRxZnWjuFvD2CYyRRIOyrprkgUH5d01yLbgHt01ScBBVXdNUnBQ3ODzBQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Date = _t, Office = _t, Workstatics = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type date}, {"Office", Int64.Type}, {"Workstatics", Int64.Type}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "Grand Total", each [Office] +[Workstatics]),
        #"Added Custom1" = Table.AddColumn(#"Added Custom", "Week of Month", each Date.WeekOfMonth([Date])),
        #"Filtered Rows" = Table.SelectRows(#"Added Custom1", each true),
        #"Added Custom2" = Table.AddColumn(#"Filtered Rows", "Custom", each List.Max(#"Changed Type"[Date]))
    in
        #"Added Custom2"

    Best Regards,

    Xue Ding

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

7 Replies

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

    Hi Anonymous ,

    The file hits the limitation of 5M for Excel online so that I can't view it. I created a sample based on your screenshot to create two new columns of Week of Month and Grand Total.

    Query Editor (M Language):

     

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("VZDBDcMwDAN3ybtAZUmW3VmK7r9GQ7ZhoA8N+GJRuff78Od4uo19PI5hdqbbeXweIH4R/xEXCb2ZJPkneU87v0aWyD0tJ3KLaJqvOjNMJC8StpDXBvvuiWCmiHqiXkwR9ST/J7aIejLGj19kipQjbwfcAA35CmR2byDTky+7N5IJB7lFUmTDwbRuFKTG4sxulCSx4cxulGRxZnWjuFvD2CYyRRIOyrprkgUH5d01yLbgHt01ScBBVXdNUnBQ3ODzBQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Date = _t, Office = _t, Workstatics = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type date}, {"Office", Int64.Type}, {"Workstatics", Int64.Type}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "Grand Total", each [Office] +[Workstatics]),
        #"Added Custom1" = Table.AddColumn(#"Added Custom", "Week of Month", each Date.WeekOfMonth([Date])),
        #"Filtered Rows" = Table.SelectRows(#"Added Custom1", each true)
    in
        #"Filtered Rows"

    Report View (DAX):

    Week of Month (DAX) = 1 + WEEKNUM ( 'Table'[Date] ) - WEEKNUM ( STARTOFMONTH ( 'Table'[Date] ) )

    I attached my sample that you can download.

     

    Best Regards,

    Xue Ding

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      Great Help,

       

      Just need add one more step after creating table i wish to filter either First file/Date of the month or last file/Date of the month.

       

      Is it posible? it will be greate help as like above. 

      Thank you !!

       

      so i can have updated details 

       

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

        Hi Anonymous ,

        How do you want to filter? Just show the earliest date?

        • You could put date to a card visual and shown as earliest or latest date.

        • Or you could create formulas.
        Earliest date = MIN( 'Table'[Date])
        Latest date = MAX('Table'[Date])

        Best Regards,

        Xue Ding

        If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.