Forum Discussion
Power BI Visualization in Table
I need an assignee performance overview table to be kept in my report which will have columns for assignee names, planned storypoints, completed storypoints, total worked hours, average loading per assignee and which will automatically get refreshed and changed with respect to sprint change in slicer as there are different assignees for different sprints with different storypoints.
1 Reply
- GrowthNativesSuper User
Hi Anonymous ,
I assume you have a transactional table (I'm calling it WorkLog) with at least: Assignee (or AssigneeID), Sprint (SprintID or SprintName), PlannedStoryPoints, CompletedStoryPoints, WorkedHours, and optionally StoryID.
If your schema differs slightly, I added some notes that might be helpful.
Assignee performance overview1. Data model
- Tables: WorkLog (transactional), Sprints (SprintID, SprintName, Start/End), Assignees (AssigneeID, AssigneeName).
- Relationships: WorkLog[SprintID] -> Sprints[SprintID], WorkLog[AssigneeID] -> Assignees[AssigneeID] (single direction).
2. Slicer
- Add slicer on Sprints[SprintName].
- Use single-select for one-sprint view (or multi-select for comparisons).
- Ensure slicer β table interaction (Format β Edit interactions).
3. Core measures
Planned Storypoints = SUM('WorkLog'[PlannedStoryPoints]) Completed Storypoints = SUM('WorkLog'[CompletedStoryPoints]) Total Worked Hours = SUM('WorkLog'[WorkedHours]) Assignee Count = DISTINCTCOUNT('WorkLog'[Assignee])(If you have Assignees table: use DISTINCTCOUNT('Assignees'[AssigneeID]).)
4. Average loading (choose)Avg Loading (hrs per assignee) = DIVIDE([Total Worked Hours],[Assignee Count])
Avg Storypoints per Assignee = DIVIDE([Planned Storypoints],[Assignee Count])
5. Progress %Completed % = IF([Planned Storypoints]=0, BLANK(), DIVIDE([Completed Storypoints],[Planned Storypoints]))
6. Table visual- Columns: Assignees[AssigneeName], Planned Storypoints, Completed Storypoints, Total Worked Hours, chosen Avg Loading, Completed %.
- Visual filter: hide blank assignees (Planned Storypoints is not blank).
7. Prevent double-countingIf PlannedStoryPoints is at story level and WorkLog has multiple rows per StoryID:
Planned Storypoints (by story) = SUMX( VALUES('WorkLog'[StoryID]), MAX('WorkLog'[PlannedStoryPoints]) )
Prefer SUM('Stories'[PlannedStoryPoints]) if you have a Stories table with a proper relationship.
Quick checks- Confirm Sprints slicer filters WorkLog.
- Avoid ALL()/REMOVEFILTERS() on Sprint in measures.
- Use Sync slicer for cross-page consistency.
βHope this solution helps you make the most of Power BI! If it did, click 'Mark as Solution' to help others find the right answers.
π‘Found it helpful? Show some love with kudos π as your support keeps our community thriving!
πLetβs keep building smarter, data-driven solutions together!π [Explore More]