Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
aslee
Helper I
Helper I

Burndown with visual level filter

Hi All,

 

I am trying to create a burndown of remaining tasks left, based on the task end date, which falls into an Agile sprint number. Each task is also assigned to a team. Sample data below:

 

TeamSprintKey
1120ABC-1
2125ABC-2
3122ABC-3
4120ABC-4
2121ABC-5
3123ABC-6
4127ABC-7
1129ABC-8
2124ABC-9
3126ABC-10
2122ABC-11
1120ABC-12
4125ABC-13
4126ABC-14
4127ABC-15
2128ABC-16
1123ABC-17
3122ABC-18
2124ABC-19
1125ABC-20

 

This is the best I have come up with:

burndown = CALCULATE(COUNT(tasks[Key]), FILTER(ALL(tasks), tasks[sprint]>=MIN(tasks[sprint])))

 

Here I encounter two problems:

 

  1.  It does not take into account visual filters, so I can't easily filter by team, unless I include the specific team in the calculated measure. I would rather just have 1 measure rather than create 4. 
  2. There may be sprints where there are no tasks due in that particular iteration, so the column for that sprint shows as empty. I want it to still show a sum of remaining tasks left regardless.

Here is what happens when there is no filter of team - works fine

 

Capture1.PNG

 

Here is what happens when I change the visual filter to team 1. Shows as 20 tasks for team 1, and missing columns of data

 

Capture2.PNG

 

And here is what I would ideally like it to look like, as an example for Team 1

Capture3.PNG

Any assistance would be appreciated!

1 ACCEPTED SOLUTION
Phil_Seamark
Employee
Employee

Hi @aslee

 

This small tweak might help.  And if you want a bar chart for each sprint, you could have a separate table for that.  Let me know if it looks close.

 

burndown = 
	CALCULATE(
		COUNT(tasks[Key]), 
		FILTER(
			ALLEXCEPT('Tasks','Tasks'[Team]), 
			tasks[sprint]>=MIN(tasks[sprint])
			)
		)

To learn more about DAX visit : aka.ms/practicalDAX

Proud to be a Datanaut!

View solution in original post

4 REPLIES 4
Phil_Seamark
Employee
Employee

Hi @aslee

 

This small tweak might help.  And if you want a bar chart for each sprint, you could have a separate table for that.  Let me know if it looks close.

 

burndown = 
	CALCULATE(
		COUNT(tasks[Key]), 
		FILTER(
			ALLEXCEPT('Tasks','Tasks'[Team]), 
			tasks[sprint]>=MIN(tasks[sprint])
			)
		)

To learn more about DAX visit : aka.ms/practicalDAX

Proud to be a Datanaut!

Thanks @Phil_Seamark - that definitely looks better! 

 

Could you clarify what you mean by a separate table? 

Hi @aslee,

 

Just thinking the chart you get with my measure doesn't match perfectly your desired chart.  I can have a look at this a little later tonight to flesh out a measure that means the chart looks closer to your desired result.


To learn more about DAX visit : aka.ms/practicalDAX

Proud to be a Datanaut!

Relatively new to DAX but managed to come up with this solution for anyone else who might need it:

 

Created a new table 'Join' where I manually entered our sprint numbers into one column.

Then created a calculated column 

Burndown = COUNTX(
FILTER(tasks,
tasks[sprint]>='Join'[sprint]), tasks[key])

 

This essentially fills in the gaps for sprints where no tasks are due. 

 

I also created 4 additional columns with filters for each team, which makes it easy to use in the column charts. 

 

Eg

 

Team 1 = COUNTX(
FILTER(tasks,
tasks[sprint]>='Join'[sprint]&&tasks[team]="1"), tasks[key])

 

Thanks @Phil_Seamark for your push in the right direction! 

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.