Advance your Data & AI career with 50 days of live learning, dataviz contests, hands-on challenges, study groups & certifications and more!
Get registeredGet Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now
Hello, I have a table with date, item, warehouse and quantity:
| date | item | warehouse | quantity |
| 6.10.2023 | A | 203 | 8 |
| 8.11.2023 | A | 203 | 7 |
| 3.6.2023 | B | 205 | 5 |
| 7.11.2023 | B | 205 | 8 |
I want to add "end date" so the table will look like this:
| date | item | warehouse | quantity | end date |
| 6.10.2023 | A | 203 | 8 | 8.11.2023 |
| 8.11.2023 | A | 203 | 7 | null |
| 3.6.2023 | B | 205 | 5 | 7.11.2023 |
| 7.11.2023 | B | 205 | 8 | null |
i tried
1) grouping by item and warehouse
2) add custom index table (0,1,)
3) delete all columns except index table + expand = table date, item, warehouse, quantity + index column
4) adding new index column 2 (index column + 1)
5) merging queries (index + index 2, item + item, warehouse + warehouse)
6) expand just date
in the newest date should be null but instead it looks like it choose random date
thank you for your ideas
Solved! Go to Solution.
Hi @evadung ,
How about this:
I did something similar that you suggested: Group By Item with MAX on date and then joined that outcome with the original table. Rest was just some cleansing.
Here the code in Power Query M that you can paste into the advanced editor (if you do not know, how to exactly do this, please check out this quick walkthrough)
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMtMzNNAzMjAyVtJRcgRiIwMQy0IpVidayULP0BBTzhwsZ6xnBpNyAkuZAklTsJQ5kjaEHNDIWAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [date = _t, item = _t, warehouse = _t, quantity = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"date", type date}, {"item", type text}, {"warehouse", Int64.Type}, {"quantity", Int64.Type}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"item"}, {{"MaxDate", each List.Max([date]), type nullable date}}),
#"Merged Queries" = Table.NestedJoin(#"Changed Type", {"item"}, #"Grouped Rows", {"item"}, "Grouped Rows", JoinKind.LeftOuter),
#"Expanded Grouped Rows" = Table.ExpandTableColumn(#"Merged Queries", "Grouped Rows", {"MaxDate"}, {"Grouped Rows.MaxDate"}),
#"Added Custom" = Table.AddColumn(#"Expanded Grouped Rows", "end date", each if [date] = [Grouped Rows.MaxDate] then null else [Grouped Rows.MaxDate]),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Grouped Rows.MaxDate"})
in
#"Removed Columns"
[Edit]: You might need to add Warehouse to the GROUP BY as well...
Let me know if this solves your query 🙂
/Tom
https://www.tackytech.blog/
https://www.instagram.com/tackytechtom/
| Did I answer your question❓➡️ Please, mark my post as a solution ✔️ |
| Also happily accepting Kudos 🙂 |
| Feel free to connect with me on LinkedIn! | |
| #proudtobeasuperuser | |
Hi @evadung ,
How about this:
I did something similar that you suggested: Group By Item with MAX on date and then joined that outcome with the original table. Rest was just some cleansing.
Here the code in Power Query M that you can paste into the advanced editor (if you do not know, how to exactly do this, please check out this quick walkthrough)
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMtMzNNAzMjAyVtJRcgRiIwMQy0IpVidayULP0BBTzhwsZ6xnBpNyAkuZAklTsJQ5kjaEHNDIWAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [date = _t, item = _t, warehouse = _t, quantity = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"date", type date}, {"item", type text}, {"warehouse", Int64.Type}, {"quantity", Int64.Type}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"item"}, {{"MaxDate", each List.Max([date]), type nullable date}}),
#"Merged Queries" = Table.NestedJoin(#"Changed Type", {"item"}, #"Grouped Rows", {"item"}, "Grouped Rows", JoinKind.LeftOuter),
#"Expanded Grouped Rows" = Table.ExpandTableColumn(#"Merged Queries", "Grouped Rows", {"MaxDate"}, {"Grouped Rows.MaxDate"}),
#"Added Custom" = Table.AddColumn(#"Expanded Grouped Rows", "end date", each if [date] = [Grouped Rows.MaxDate] then null else [Grouped Rows.MaxDate]),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Grouped Rows.MaxDate"})
in
#"Removed Columns"
[Edit]: You might need to add Warehouse to the GROUP BY as well...
Let me know if this solves your query 🙂
/Tom
https://www.tackytech.blog/
https://www.instagram.com/tackytechtom/
| Did I answer your question❓➡️ Please, mark my post as a solution ✔️ |
| Also happily accepting Kudos 🙂 |
| Feel free to connect with me on LinkedIn! | |
| #proudtobeasuperuser | |
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!
Check out the October 2025 Power BI update to learn about new features.
| User | Count |
|---|---|
| 8 | |
| 7 | |
| 5 | |
| 5 | |
| 3 |