Forum Discussion
Dynamic counts with date filter
Hey!
My team has been challeneged to represent counts in a dynamic way (I think, I'm not actually sure of the best way to pull this off).
We have data for declined contracts vs accepted contracts. There are occassion where a candidate will decline and soon after change their mind and accept.
Name: Candidate Table
| Candidate | Recruiter | Declined | Accepted |
| Bob | Jane Doe | 7/8/2022 | 7/11/2022 |
| Sally | Jane Doe | 7/14/2022 | |
| Norman | John Doe | 7/15/2022 | |
| Guy | John Doe | 7/9/2022 |
What they are looking for is counts by recruiter name
The rough part: if they have both a declined and accepted date
if the date range filter include both dates then only the "Final" or last contract status is counted
| Date Filter | 7/8/22 - 7/15/22 | |
| Declines | Accepted | |
| Jane Doe | 2 | |
| John Doe | 2 |
if the date range filter doesn't include both then it counts the one in that range
| Date Filter | 7/8/22 - 7/10/22 | |
| Declines | Accepted | |
| Jane Doe | 1 | |
| John Doe | 1 |
| Date Filter | 7/10/22 - 7/18/22 | |
| Declines | Accepted | |
| Jane Doe | 2 | |
| John Doe | 1 |
I hope that makes sense! I was thinking a parameter is needed? or am I not going down the right path for this? I wasn't sure if a bunch of "if" statements was a performance friendly way to go either.
Any help would be fantastic!
4 Replies
- daXtremeSolution Sage
Is it possible that a candidate rejects and then accepts on the same day? Because if that's the case, you've got a problem. You'll have to also store the time of such events.
- jessimica1018Helper II
There is a chance - we do have the date/time the action happened.
- v-yinliw-msftCommunity Support
Hi jessimica1018 ,
You can try this method:
New a date table:
Date = CALENDAR(MIN('Candidate Table'[Declined]), MAX('Candidate Table'[Accepted]) )In the candidate table, create two measures:
Accept = CALCULATE ( COUNT ( 'Candidate Table'[Accepted] ), FILTER ( 'Candidate Table', 'Candidate Table'[Accepted] >= MIN ( 'Date'[Date] ) && 'Candidate Table'[Accepted] <= MAX ( 'Date'[Date] ) ) )Declines = VAR _minormax = IF ( SELECTEDVALUE ( 'Candidate Table'[Declined] ) < SELECTEDVALUE ( 'Candidate Table'[Accepted] ), BLANK (), CALCULATE ( COUNT ( 'Candidate Table'[Declined] ), FILTER ( 'Candidate Table', 'Candidate Table'[Declined] <= MAX ( 'Date'[Date] ) && 'Candidate Table'[Declined] >= MIN ( 'Date'[Date] ) ) ) ) RETURN IF ( MIN ( 'Candidate Table'[Accepted] ) >= MAX ( 'Date'[Date] ), _minormax )Use the date table to be a slicer.
The result is:
Hope this helps you.
And here is my PBIX file.
Best Regards,
Community Support Team _Yinliw
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.