This time we’re going bigger than ever. Fabric, Power BI, SQL, AI and more. We're covering it all. You won't want to miss it.
Learn moreLevel up your Power BI skills this month - build one visual each week and tell better stories with data! Get started
Hello all!
I'm looking to create a forecast of the manning level in my organisation over a couple of years, taking into account fixed term contracts. I have their names, join date and projected contract end date in a table that looks like this:
If anyone could help me out that would be great - new to Power BI this week and want to demonstrate how it can be of use to the company!
Many thanks
Solved! Go to Solution.
Hi @BenEaton,
If I understood you correctly, you want to calculate the number of stilled working employees, right?
You can create a calendar table:
Calendar = CALENDAR(MIN('Table1'[Join]),MAX('Table1'[End]))
Then create a measure in Table1:
Still Employed = COUNTAX(FILTER(ALL(Table1),[End]>=MAX([End])),[Name])
Create a new table:
Table = DISTINCT(SELECTCOLUMNS('Calendar',"Date",[Date],"Still Employeed",COUNTAX(FILTER(ALL(Table1),[End]>=EARLIER('Calendar'[Date])),[Name])))
Add a forecast line to the line chart.
Best Regards,
Qiuyun Yu
I might have figured it out as COUNTAX(FILTER(Plot,[Join]<=EARLIER(Calendar[Date]) && [End]>=EARLIER(Calendar[Date]))), it appears to show what I need it to! I am still a bit confused about the use of EARLIER, but it does what I need it to and some more playing with the expression might be more revealing.
Many thanks @v-qiuyu-msft for a bit of guided learning! If there's a more logical way of writing what I have written please let me know! If only now I can add a slicer I'm fully set!
Ben
Hi @BenEaton,
If I understood you correctly, you want to calculate the number of stilled working employees, right?
You can create a calendar table:
Calendar = CALENDAR(MIN('Table1'[Join]),MAX('Table1'[End]))
Then create a measure in Table1:
Still Employed = COUNTAX(FILTER(ALL(Table1),[End]>=MAX([End])),[Name])
Create a new table:
Table = DISTINCT(SELECTCOLUMNS('Calendar',"Date",[Date],"Still Employeed",COUNTAX(FILTER(ALL(Table1),[End]>=EARLIER('Calendar'[Date])),[Name])))
Add a forecast line to the line chart.
Best Regards,
Qiuyun Yu
Hi @v-qiuyu-msft,
Many thanks, that's brilliant. What I am trying to work out now is how to take into account the join date - as the line chart only takes into account end date and the starting line is simply the sum of all employees in the data, regardless of join date.
I think it's to do with COUNTAX(FILTER(ALL(Table1),[End]>=EARLIER('Calendar'[Date])) only referencing [end], not [Join]. At the moment trying to find a way to express almost a "between"!
I might have figured it out as COUNTAX(FILTER(Plot,[Join]<=EARLIER(Calendar[Date]) && [End]>=EARLIER(Calendar[Date]))), it appears to show what I need it to! I am still a bit confused about the use of EARLIER, but it does what I need it to and some more playing with the expression might be more revealing.
Many thanks @v-qiuyu-msft for a bit of guided learning! If there's a more logical way of writing what I have written please let me know! If only now I can add a slicer I'm fully set!
Ben
Check out the April 2026 Power BI update to learn about new features.
Sign up to receive a private message when registration opens and key events begin.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
| User | Count |
|---|---|
| 35 | |
| 32 | |
| 26 | |
| 21 | |
| 18 |
| User | Count |
|---|---|
| 68 | |
| 37 | |
| 33 | |
| 23 | |
| 23 |