Forum Discussion
data1234
2 years agoFrequent Visitor
Pivoting/Grouping Dates
I have a table from a SQL database with a bunch of products that are repaired multiple times, each item has a serial number and has up to n repairs each in its respective row I want to group by serial number and then have each product's serial number have all of the repair dates as columns in a row per serial number up to some number n of repairs per item e.g.
| Serial_nr | Repair_date |
| A1234 | 15/02/2024 |
| A1234 | 18/02/2024 |
| A1234 | 15/03/2024 |
| A2222 | 12/02/2024 |
| A5555 | 11/01/2024 |
| A5555 | 11/08/2024 |
IT should turn into this for some repair dates per serial_nr N
| Serial_nr | Repair_date1 | Repair_date2 | Repair_date3 |
| A1234 | 15/02/2024 | 18/02/2024 | 15/03/2024 |
| A2222 | 12/02/2024 | null | null |
| A5555 | 11/01/2024 | 11/08/2024 | null |
Thank you very much
pls try this
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WcjQ0MjZR0lEyNNUzMNIzMjAyUYrVQRK2wC4MVG2MJGwEBCBhI1TVpkAAEjbUMzDELmwBFY4FAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Serial_nr = _t, Repair_date = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Serial_nr", type text}, {"Repair_date", type date}}), #"Grouped Rows" = Table.Group(#"Changed Type", {"Serial_nr"}, {{"Count", (x)=>[ a= List.Count(x[Repair_date]), b= Table.FromRows( {x[Repair_date]}, List.Transform( {1..a}, (x)=> "Repair_date" & Text.From(x))) ][b] }}), #"Expanded Count" = Table.ExpandTableColumn(#"Grouped Rows", "Count", {"Repair_date1", "Repair_date2", "Repair_date3"}) in #"Expanded Count"
3 Replies
- AhmedxSuper User
pls try this
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WcjQ0MjZR0lEyNNUzMNIzMjAyUYrVQRK2wC4MVG2MJGwEBCBhI1TVpkAAEjbUMzDELmwBFY4FAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Serial_nr = _t, Repair_date = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Serial_nr", type text}, {"Repair_date", type date}}), #"Grouped Rows" = Table.Group(#"Changed Type", {"Serial_nr"}, {{"Count", (x)=>[ a= List.Count(x[Repair_date]), b= Table.FromRows( {x[Repair_date]}, List.Transform( {1..a}, (x)=> "Repair_date" & Text.From(x))) ][b] }}), #"Expanded Count" = Table.ExpandTableColumn(#"Grouped Rows", "Count", {"Repair_date1", "Repair_date2", "Repair_date3"}) in #"Expanded Count"- data1234Frequent Visitor
Thank you very much, what I needed exactly
- AlienSxSuper User
did not bother with column names...
let Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content], group = Table.Group(Source, "Serial_nr", {"x", (x) => Table.FromRows({{Table.FirstValue(x)} & x[Repair_date]})}), result = Table.Combine(group[x]) in result