Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
3 years ago

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

  • 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 overview

    1. 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-counting

    If 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]