Forum Discussion
Power Query - get data from another column based on date
Hello all,
I have a business problem that requires a solution similar to (Solved: Power Query - Get data from another table if condi... - Microsoft Fabric Community) question however I haven't been able to implement after working on this all day.
I have the following aggregated table:
| ID | Location | Date | Status |
| 1 | Miami | 06/01/2024 | Complete |
| 2 | Miami | 02/01/2024 | Incomplete |
| 3 | Tampa | 11/11/2024 | Complete |
| 4 | Orlando | 07/10/2025 | TBD |
| 5 | Orlando | 05/03/2025 | Complete |
| 6 | Orlando | 05/01/2025 | Complete |
| 7 | Melbourne | 09/25/2022 | Incomplete |
The table is already sorted so that the first entry of row of a common Location is the latest Date. I want create a new column that returns the Status of the most recent Date for every Location. The other Date rows should be null. The result table should look like:
| ID | Location | Date | Status | New |
| 1 | Miami | 06/01/2024 | Complete | Complete |
| 2 | Miami | 02/01/2024 | Incomplete | null |
| 3 | Tampa | 11/11/2024 | Complete | Complete |
| 4 | Orlando | 07/10/2025 | TBD | TBD |
| 5 | Orlando | 05/03/2025 | Complete | null |
| 6 | Orlando | 05/01/2025 | Complete | null |
| 7 | Melbourne | 09/25/2022 | Incomplete | Incomplete |
- Anonymous1 year ago
Hi, powerplatp0
You can try the following methods.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUfLNTMzNBNJm+ob6RgZGJkCmc35uQU5qSapSrE60khGSGiOEGs+8ZKgqBbAyY6BYSGJuQSKQNjTUN8QwDKIMJOJflJOYl5IPZJnrGxqA1JmCNDu5gFWYoqgw1TeGKUBxlRmaKkOsqsxBbk/NScovLcpLBbIt9Y1MQQqNUDygFBsLAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ID = _t, Location = _t, Date = _t, Status = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", Int64.Type}, {"Location", type text}, {"Date", type date}, {"Status", type text}}), #"Grouped Rows" = Table.Group(#"Changed Type", {"Location"}, {{"Data", each _}}), Custom1 = Table.TransformColumns(#"Grouped Rows",{"Data", each Table.FirstN(_,1)}), #"Expanded Data" = Table.ExpandTableColumn(Custom1, "Data", {"ID", "Status"}, {"Data.ID", "Data.Status"}), #"Merged Queries" = Table.NestedJoin(#"Changed Type", {"ID"}, #"Expanded Data", {"Data.ID"}, "Expanded Data", JoinKind.LeftOuter), #"Expanded Expanded Data" = Table.ExpandTableColumn(#"Merged Queries", "Expanded Data", {"Data.Status"}, {"Data.Status"}) in #"Expanded Expanded Data"Is this the result you expected?
Best Regards,
Community Support Team _Charlotte
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
2 Replies
- AnonymousNot applicable
Hi, powerplatp0
You can try the following methods.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUfLNTMzNBNJm+ob6RgZGJkCmc35uQU5qSapSrE60khGSGiOEGs+8ZKgqBbAyY6BYSGJuQSKQNjTUN8QwDKIMJOJflJOYl5IPZJnrGxqA1JmCNDu5gFWYoqgw1TeGKUBxlRmaKkOsqsxBbk/NScovLcpLBbIt9Y1MQQqNUDygFBsLAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ID = _t, Location = _t, Date = _t, Status = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", Int64.Type}, {"Location", type text}, {"Date", type date}, {"Status", type text}}), #"Grouped Rows" = Table.Group(#"Changed Type", {"Location"}, {{"Data", each _}}), Custom1 = Table.TransformColumns(#"Grouped Rows",{"Data", each Table.FirstN(_,1)}), #"Expanded Data" = Table.ExpandTableColumn(Custom1, "Data", {"ID", "Status"}, {"Data.ID", "Data.Status"}), #"Merged Queries" = Table.NestedJoin(#"Changed Type", {"ID"}, #"Expanded Data", {"Data.ID"}, "Expanded Data", JoinKind.LeftOuter), #"Expanded Expanded Data" = Table.ExpandTableColumn(#"Merged Queries", "Expanded Data", {"Data.Status"}, {"Data.Status"}) in #"Expanded Expanded Data"Is this the result you expected?
Best Regards,
Community Support Team _Charlotte
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
- IrwanSuper User
hello powerplatp0
please check if this accomodate your need.
create new calculated column with following DAX.
New =
var _MaxDate =
MAXX(
FILTER(
'Table',
'Table'[Location]=EARLIER('Table'[Location])
),
'Table'[Date]
)
Return
IF(
'Table'[Date]=_MaxDate,
'Table'[Status],
"Null"
)Hope this will help.Thank you.