Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Hi Friends,
I have below data from AzureDevOps in excel format. I need to create a logic to create a output to have 2 more columns one to add parent ID to all Epics (it's parent is System Epic) and another one it to pick the latest id from the epics and add to system epic line
item. (ID starts with x_wNNNN or xT1_wNNNN or xP_wNNNN)
Below table will have more columns like areapath, iteration path, assigned, status etc. I have removed here to reduce characters
Kindly suggest how this can be achieve ?
ID | SR ID | Work Item Type | Title 1 | Tags |
535971 | SR-5391 | System Epic | S.Epic 1 | |
524467 | Epic | Epic11 | 30458; sample text; SR-4776; Done | |
565587 | Epic | Epic12 | 40096; Delivery3; Diagnostics; Online; x_w2548 | |
569140 | Epic | Epic13 | 41757; Redundancy; SR-5391; xReady | |
630563 | Epic | Epic14 | 59174; Delivery3; Diagnostics; IACTools; Online; x_w2548 | |
559831 | SR-5779 | System Epic | S.Epic 2 | |
565637 | Epic | Epic21 | 40141; Delivery1; ImportedState:Active; x_w2537; xReady | |
565640 | Epic | Epic22 | 40143; Delivery1; x_w2537 | |
565641 | Epic | Epic23 | 40144; Delivery1; SR-4358; Deploy; x_w2537 | |
565642 | Epic | Epic24 | 40145; Delivery3; SE; SR-4358; ; x_w2548 | |
634182 | Epic | Epic28 | 60137; Delivery3; SignalEngineering; SR-4358; x_w2548 | |
636768 | Epic | Epic29 | 60249; Delivery5; SR-4358; eee; x_w2609 | |
559839 | SR-5791 | System Epic | S.Epic 3 | |
568841 | SR-5365 | System Epic | S.Epic 4 | |
547718 | Epic | Epic41 | 36615; ImportedState:New; Plan; ; ; xReady | |
591929 | Epic | Epic42 | 46076; ImportedState:New; Plan; ; xReady | |
596136 | Epic | Epic43 | 47299; Connectivity Service; is:New; Plan; ; xReady | |
607989 | Epic | Epic44 | 276381; EPIC; x_w2518 | |
607993 | Epic | Epic45 | 276385; EPIC; x_w2519 | |
607994 | Epic | Epic46 | 276390; IOW_EPIC; x_w2522 | |
607995 | Epic | Epic47 | 276391; W_EPIC; x_w2526 |
Expected output will be : columns higlighted
ID | SR ID | Work Item Type | Title 1 | Tags | Parent ID | Latest Tag |
535971 | SR-5391 | System Epic | S.Epic 1 | w2548 | ||
524467 | Epic | Epic11 | 30458; sample text; SR-4776; Done | 535971 | ||
565587 | Epic | Epic12 | 40096; Delivery3; Diagnostics; Online; x_w2548 | 535971 | ||
569140 | Epic | Epic13 | 41757; Redundancy; SR-5391; xReady | 535971 | ||
630563 | Epic | Epic14 | 59174; Delivery3; Diagnostics; IACTools; Online; x_w2548 | 535971 | ||
559831 | SR-5779 | System Epic | S.Epic 2 | w2609 | ||
565637 | Epic | Epic21 | 40141; Delivery1; ImportedState:Active; x_w2537; xReady | 559831 | ||
565640 | Epic | Epic22 | 40143; Delivery1; x_w2537 | 559831 | ||
565641 | Epic | Epic23 | 40144; Delivery1; SR-4358; Deploy; x_w2537 | 559831 | ||
565642 | Epic | Epic24 | 40145; Delivery3; SE; SR-4358; ; x_w2548 | 559831 | ||
634182 | Epic | Epic28 | 60137; Delivery3; SignalEngineering; SR-4358; x_w2548 | 559831 | ||
636768 | Epic | Epic29 | 60249; Delivery5; SR-4358; eee; x_w2609 | 559831 | ||
559839 | SR-5791 | System Epic | S.Epic 3 | NA | ||
568841 | SR-5365 | System Epic | S.Epic 4 | |||
547718 | Epic | Epic41 | 36615; ImportedState:New; Plan; ; ; xReady | 568841 | w2526 | |
591929 | Epic | Epic42 | 46076; ImportedState:New; Plan; ; xReady | 568841 | ||
596136 | Epic | Epic43 | 47299; Connectivity Service; is:New; Plan; ; xReady | 568841 | ||
607989 | Epic | Epic44 | 276381; EPIC; x_w2518 | 568841 | ||
607993 | Epic | Epic45 | 276385; EPIC; x_w2519 | 568841 | ||
607994 | Epic | Epic46 | 276390; IOW_EPIC; x_w2522 | 568841 | ||
607995 | Epic | Epic47 | 276391; W_EPIC; x_w2526 | 568841 |
Solved! Go to Solution.
Your sample only has one System Epic. Please provide sample data that fully covers your issue.
Please show the expected outcome based on the sample data you provided.
Hi @manojk_pbi,
Thanks for reaching out to the Microsoft fabric community forum.
It looks like you are looking for a way to transform your data and add new columns. As @lbendlin already responded to your query, please go through his responses and check if it solves your issue.
I would also take a moment to thank @lbendlin, for actively participating in the community forum and for the solutions you’ve been sharing in the community forum. Your contributions make a real difference.
If I misunderstand your needs or you still have problems on it, please feel free to let us know.
Best Regards,
Hammad.
Community Support Team
If this post helps then please mark it as a solution, so that other members find it more quickly.
Thank you.
Hi @manojk_pbi,
As we haven’t heard back from you, so just following up to our previous message. I'd like to confirm if you've successfully resolved this issue or if you need further help.
If yes, you are welcome to share your workaround and mark it as a solution so that other users can benefit as well. If you find a reply particularly helpful to you, you can also mark it as a solution.
If you still have any questions or need more support, please feel free to let us know. We are more than happy to continue to help you.
Thank you for your patience and look forward to hearing from you.
Hi @manojk_pbi,
I wanted to check if you had the opportunity to review the information provided. Please feel free to contact us if you have any further questions. If my response has addressed your query, please accept it as a solution so that other community members can find it easily.
Thank you.
Hi @manojk_pbi,
May I ask if you have resolved this issue? If so, please mark the helpful reply and accept it as the solution. This will be helpful for other community members who have similar problems to solve it faster.
Thank you.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("fZNLa+MwFIX/ivA6M1ivK2m0KmkW2bQlGZhFCcU4IggcOcTuw/9+JMWO7Y48K18jnY+jc+99fc045UrgbJXtdz84VbHqmtac0eZiy/D3MxQoHKDssPIKwhiI+LvK+kvhg8MVmjMuNWqK86UyqDVfrUaezIQAjR5rZ24I4FymEMQXLM9VuGwq+2GuHfWlLU6ublpbNho9u8o6o9HX2yfhTPY8hVme4NHAw4ILjXbm+O6OhSu76Ci81UN2pjh2kQE050ATDOYLrrBgy562D+vfdV0tueNK0iFiIdRSxGSMGLyVRD4Ex3www6MXX27Pl/ramuO+LVrz66Fs/YFGNw9UzF4ZyKmkCOnJdEYeGKMWJ7S017KZNrSdhmF4NJeq7vS/LJJgsZ7FZ2nvNxPePF2gDMsUSfoCchwCmJLsyRXVxp18m8zVutMEPMeCAJnAqoglTI1YPmEY03cfcjV2Xw3dX14wOum+lOy+ksCXFGxU+P3CCbORQgEw/z4kT+ZTo5eqcCHO+YQorOIjv7PihEAeFvk/rBkJMIUEKc6LIMpHuK6dM2Fgbduhvbl+2NLnZ5tFqDegZMpeSIMIoNKP3uZlux6GF8u7TiXWm/FBxwfdTaZGGUvIoJep3Mfx/OdtIvW7dJfyhFQMUu90LoTscPgL", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ID = _t, #"SR ID" = _t, #"Work Item Type" = _t, #"Title 1" = _t, Tags = _t]),
#"Grouped Rows" = Table.Group(Source, {"Work Item Type"}, {{"rows", each _, type table [ID=nullable text, SR ID=nullable text, Work Item Type=nullable text, Title 1=nullable text, Tags=nullable text]}},GroupKind.Local,(x,y)=>Number.From(x=y)),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Parent ID", each [rows]{0}[ID]),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Latest Tag", each List.Last(Text.Split(Text.Combine([rows][Tags],";"),";"))),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"Work Item Type"}),
#"Expanded rows" = Table.ExpandTableColumn(#"Removed Columns", "rows", {"ID", "SR ID", "Work Item Type", "Title 1", "Tags"}, {"ID", "SR ID", "Work Item Type", "Title 1", "Tags"})
in
#"Expanded rows"
How to use this code: Create a new Blank Query. Click on "Advanced Editor". Replace the code in the window with the code provided here. Click "Done". Once you examined the code, replace the entire Source step with your own source.
Obligatory shoutout to @ImkeF Table.Group: Exploring the 5th element in Power BI and Power Query –
Thanks @lbendlin , this is exactly what i am looking.
I have not understood completely the logic how it works, pls guide me with some reference material will go through for better understanding.
One clarification, will it work if we have more columns like areapath, iterationpath etc from extract and will the same logic works if we have features tagged under epics.
I included the link as reference. That's the best i am aware of.
Please provide sample data that fully covers your issue.
Please show the expected outcome based on the sample data you provided.
Hi @lbendlin ,
Thanks for your reply. Please find below sample data with all columns and expected output
ID | SR ID | Work Item Type | Title 1 | Title 2 | Title 3 | Assigned To | Area Path | Iteration Path | State | Tags | Target Date | ParentID | LatestTag |
559831 | SR-5779 | System Epic | Title1 | User1 | Areapth1 | IterationPath\1.1 | Active | w2619 | |||||
565637 | Epic | Title1.1 | User1 | Areapth1\test\1.1 | IterationPath\1.1 | Resolved | 40141; Delivery1; ImportedState:Active; ; x_w2537; xReady | 12/5/2025 5:30 | 559831 | ||||
526518 | Feature | User1 | Areapth1\test\1.1 | IterationPath\1.1 | Closed | 23394; ImportedFunction:; ImportedState:Active; | 565637 | ||||||
606007 | Feature | User1 | Areapth1\test\1.1 | IterationPath\1.1 | Closed | 48725; ImportedFunction:; ImportedState:New; | 565637 | ||||||
565640 | Epic | Title1.2 | User1 | Areapth1\test\1.1 | IterationPath\1.1 | Resolved | 40143; Delivery1; VCEAllocation; x_w2537 | 12/5/2025 5:30 | 559831 | ||||
527129 | Feature | User1 | Areapth1\test\1.1 | IterationPath\1.1 | Closed | 26315; ImportedFunction:; ImportedState:New; 24 Commit; 24 Commit; 24 Commit; | 565640 | ||||||
565641 | Epic | Title1.3 | User1 | Areapth1\test\1.1 | IterationPath\1.1 | Active | 40144; Delivery1; SR-4358; VCEDeploy; x_w2537 | 12/5/2025 5:30 | 559831 | ||||
541657 | Feature | User1 | Areapth1\test\1.1 | IterationPath\1.1 | Closed | 36179; ImportedFunction:; ImportedState:New; 24 Commit; 24 Commit; | 565641 | ||||||
630409 | Feature | User1 | Areapth1\test\1.1 | IterationPath\1.1 | Closed | 56770 | 565641 | ||||||
565642 | Epic | Title1.4 | User1 | Areapth1\test\1.1 | IterationPath\1.1 | Active | 40145; Delivery3; SignalEngineering; SR-4358; VCEDeploy; x_w2548 | 12/5/2025 5:30 | 559831 | ||||
612716 | Epic | Errors & Warnings | Areapth1\test\1.1 | IterationPath\1.1 | New | x_w2619;298999;Delivery3 | 9/30/2025 5:30 | 559831 | |||||
612717 | Feature | User1 | Areapth1\test\1.1 | IterationPath\1.1 | Resolved | 299000; SPI_25.2_Committed | 612718 | ||||||
612718 | Feature | User1 | Areapth1\test\1.1 | IterationPath\1.1 | New | 299001; SPI_25.2_Committed | 612718 | ||||||
612727 | Epic | Audit Events | Areapth1\test\1.1 | IterationPath\1.1 | New | 299017;Testings;x_w2609;Commited;Delivery;XPReady | 9/30/2025 5:30 | 559831 | |||||
612730 | Feature | Areapth1\test\1.1 | IterationPath\1.1 | New | 299018 | 612727 | |||||||
612731 | Feature | Areapth1\test\1.1 | IterationPath\1.1 | New | 299019 | 612727 | |||||||
619356 | Epic | Epic2 | User1 | Areapth1\test\1.1 | IterationPath\1.1 | Active | 57241; Delivery3; VCESettings; x_w2548 | 12/5/2025 5:30 | 559831 | ||||
647835 | Feature | User1 | Areapth1\test\1.1 | IterationPath\1.1 | New | 62529 | 619356 |
Your sample only has one System Epic. Please provide sample data that fully covers your issue.
Please show the expected outcome based on the sample data you provided.
User | Count |
---|---|
14 | |
6 | |
2 | |
2 | |
2 |
User | Count |
---|---|
3 | |
3 | |
3 | |
2 | |
2 |