Forum Discussion
SafeAnalyst
5 years agoFrequent Visitor
How to Lookup value from latest date for specific value
Hi. I have the following dataset where i would like to locate the 'Item Legder Entry Type' for each Item No based on the last posting date. I have the column 'Last Posting Date' and i would like ...
- 5 years ago
Hi SafeAnalyst ,
Using [Last Posting Date] :
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMrLQNbDUNTIwMlBQ0lFSQAIBpUXJGYnFqUBhVzcDY0tzIANZdaxOtJIBkG8O5sM1+6WmJ5ZklqUqOKZklRaX5KbmleAzwchY18AM1QQ4cM7PKy7NLSjJzM/Da4QJjA+URHW1iYkRSANCAVi9EWnqgWwDQyDX0BIoB/deIpr3TMzNgAwktbGxAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Posting Date" = _t, #"Item Ledger Entry Type" = _t, #"Item No" = _t, #"Last Posting Date" = _t]), #"Keep Last Dates" = Table.SelectRows(Source, each [Posting Date] = [Last Posting Date]) in #"Keep Last Dates"
Using just [Posting Date] :let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMrLQNbDUNTIwMlBQ0lFSQAIBpUXJGYnFqUBhVzcDY0tzIANZdaxOtJIBkG8O5sM1+6WmJ5ZklqUqOKZklRaX5KbmleAzwchY18AM1QQ4cM7PKy7NLSjJzM/Da4QJjA+URHW1iYkRSANCAVi9EWnqgWwDQyDX0BIoB/deIpr3TMzNgAwktbGxAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Posting Date" = _t, #"Item Ledger Entry Type" = _t, #"Item No" = _t, #"Last Posting Date" = _t]), LastDates = Table.Group(Source[[Item No], [Posting Date]], {"Item No"}, {{"Max Date", each List.Max([Posting Date]), type date}}), #"Keep Last Dates" = Table.NestedJoin ( Source, {"Item No", "Posting Date"}, LastDates, {"Item No", "Max Date"}, "Remove", JoinKind.Inner), #"Remove Extra Column" = Table.RemoveColumns( #"Keep Last Dates", {"Remove"}) in #"Remove Extra Column"
AlB
5 years agoCommunity Champion
Hi SafeAnalyst
Paste this code in a blank query to see the steps. #"Filtered Rows" is the relevant one
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMrLQNbDUNTIwMlBQ0lEKKC1KzkgsTgUyXd0MjC3NlWJ1opUMgGrMwWqA4n6p6YklmWWpCo4pWaXFJbmpeSWoqo2MdQ3MYKqd8/OKS3MLSjLz85BUxQIA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Posting Date" = _t, #"Item Ledger Entry Type" = _t, #"Item No" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Posting Date", type date}, {"Item Ledger Entry Type", type text}, {"Item No", type text}}),
#"Filtered Rows" = Table.SelectRows(#"Changed Type", each List.Max(#"Changed Type"[Posting Date])=[Posting Date])
in
#"Filtered Rows"
Please mark the question solved when done and consider giving kudos if posts are helpful.
Contact me privately for support with any larger-scale BI needs, tutoring, etc.
Cheers
SafeAnalyst
5 years agoFrequent Visitor
Thanks AlB - It worked like a charm. I figured it would be quite simple 🙂