Forum Discussion
KHSK
Advocate I
9 months agoNeed Power Query code to load unique IDs in the snapshot history Table
Extremely sorry for the confusion, I just updated the TO-BE table. Logic: If approval dates are same for VP& SVP for an ID, I need any one of them to be displayed uniquely. If approval dates ...
- 9 months ago
Hello,
The code below might get the right results. See annotations in the codelet Source = YOURDATA, // group the data by ID and snapshotdate combination groupby_id_snapshotdate = Table.Group( Source, {"ID", "SnapshotDt"}, {{"Table", each _, type table [ID=nullable number, ApprovalDate=nullable date, ApprovalRole=nullable text, Status=nullable text, SnapshotDt=nullable date]}}), // determine which row from the nested table should be returned add_SelectedRow = Table.AddColumn( groupby_id_snapshotdate, "SelectedRow", // if there is only one row, return the row each if Table.RowCount([Table]) = 1 then [Table]{0} // if the list of approvaldates is distinct that means there is more than one date in the list. else if List.IsDistinct([Table][ApprovalDate]) // return te row with the max date then Table.SelectRows([Table], (row) => row[ApprovalDate] = List.Max([Table][ApprovalDate])){0} // get // the list is not distinct = all dates are the same -> return first row else Table.First([Table])), // get the data from the records expand_records = Table.ExpandRecordColumn( add_SelectedRow, "SelectedRow", {"ApprovalDate", "ApprovalRole", "Status"}, {"ApprovalDate", "ApprovalRole", "Status"}), // remove the table column removeColumns = Table.RemoveColumns( expand_records,{ "Table"}) in removeColumns
Chewdata
Responsive Resident
9 months agoHello,
The code below might get the right results. See annotations in the code
let
Source = YOURDATA,
// group the data by ID and snapshotdate combination
groupby_id_snapshotdate = Table.Group(
Source,
{"ID", "SnapshotDt"},
{{"Table", each _, type table [ID=nullable number, ApprovalDate=nullable date, ApprovalRole=nullable text, Status=nullable text, SnapshotDt=nullable date]}}),
// determine which row from the nested table should be returned
add_SelectedRow = Table.AddColumn(
groupby_id_snapshotdate,
"SelectedRow",
// if there is only one row, return the row
each if Table.RowCount([Table]) = 1 then [Table]{0}
// if the list of approvaldates is distinct that means there is more than one date in the list.
else if List.IsDistinct([Table][ApprovalDate])
// return te row with the max date
then Table.SelectRows([Table], (row) => row[ApprovalDate] = List.Max([Table][ApprovalDate])){0} // get
// the list is not distinct = all dates are the same -> return first row
else Table.First([Table])),
// get the data from the records
expand_records = Table.ExpandRecordColumn(
add_SelectedRow,
"SelectedRow",
{"ApprovalDate", "ApprovalRole", "Status"},
{"ApprovalDate", "ApprovalRole", "Status"}),
// remove the table column
removeColumns = Table.RemoveColumns(
expand_records,{
"Table"})
in
removeColumns
KHSK
Advocate I
8 months agoThanks for your feedback. I've got a solution on my own, I'm sure your solution will also yield me what I'm expecting. Thanks anyways.