Forum Discussion
KyawMyoTun
Helper IV
1 year agoMerge data based on ID with latest date of multiples value and by filter
Dear Experts, I have two table called transaction and note table as below. Transaction table ID Status Date 111 Lead 1/20/2024 111 Proposal 3/20/2024 111 Completed 5/20/2024 ...
- 1 year ago
Hi KyawMyoTun ,
I am building on top of the solutions posted here.
As you don't want to create a Reference table separately, we can have a virtual reference table built in the Advanced Properties of the Transactions table and use that to merge with the note table. The Below is the M-Query. This Query will work with the Sample Data that you shared.
let reference = Note, #"Filtered Rows" = Table.SelectRows(reference, each ([Type] = "Tender")), #"Sorted Rows" = Table.Sort(#"Filtered Rows",{{"Date", Order.Descending}}), #"Grouped Rows" = Table.Group(#"Sorted Rows", {"Action ID"}, {{"Count", each _, type table [Action ID=nullable number, Note=nullable text, Type=nullable text, Date=nullable text]}}), #"Expanded Count" = Table.ExpandTableColumn(#"Grouped Rows", "Count", {"Note"}, {"Count.Note"}), #"Kept First Rows" = Table.FirstN(#"Expanded Count",1), Source = <<Give your transaction table here >>, #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", Int64.Type}, {"Status", type text}, {"Date", type text}}), #"Merged Queries" = Table.NestedJoin(#"Changed Type", {"ID"}, #"Kept First Rows", {"Action ID"}, "firstrow", JoinKind.LeftOuter), #"Expanded firstrow" = Table.ExpandTableColumn(#"Merged Queries", "firstrow", {"Count.Note"}, {"firstrow.Count.Note"}) in #"Expanded firstrow"Basically I am creating a virtual reference table and using that to merge with the transaction table to get the output. In the above M Query replace the Source with your table details.
M Query Snapshot for your reference:
My FInal table will look like this
Regards,
Krishana_123
1 year agoFrequent Visitor
Hi KyawMyoTun,
I have tried to solve the same problem in my way hope you found it helpful.
let
Source = Excel.CurrentWorkbook(){[Name="Note_table"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Action ID", Int64.Type}, {"Note", type text}, {"Type", type text}, {"Date", type text}}),
#"Filtered Rows" = Table.SelectRows(#"Changed Type" , each ([Type] = "Tender")),
#"Sorted Rows" = Table.Sort(#"Filtered Rows",{{"Date", Order.Descending}}),
Statusvalue=Table.FirstN(#"Sorted Rows",1),
values1=Statusvalue{0}[Note],
Jointable=Table.NestedJoin(#"Sorted Rows", {"Action ID","Date"}, Transaction_table, {"ID","Date"}, "Transaction_table", JoinKind.Inner),
#"Expanded Transaction_table" = Table.ExpandTableColumn(Jointable, "Transaction_table", {"Status"}, {"Status"}),
Custom1 = Table.FromRecords(
Table.TransformRows(
#"Expanded Transaction_table",
each _ &[Note = Text.Replace([Note], [Note], values1)]
)
)[[Action ID],[Status],[Date],[Note]]
in
Custom1