Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! It's time to submit your entry. Live 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 | |
The Power BI Data Visualization World Championships is back! It's time to submit your entry.
If you love stickers, then you will definitely want to check out our Community Sticker Challenge!
Check out the January 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 5 | |
| 5 | |
| 4 | |
| 3 | |
| 3 |