Power BI is turning 10, and we’re marking the occasion with a special community challenge. Use your creativity to tell a story, uncover trends, or highlight something unexpected.
Get startedJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
Hi there.
My fact table includes StartDate (FechaSalida) and EndDate (FechaRetorno), I need to count the total clients with an active service based on the selected date (filtered slicer)
I have a TableDate in relationship with StartDate.
This is a sample
This is what I'm trying but this is only filtering those who started on the selected date
Contratos Activos =
CALCULATE(
[Total Contratos],
FILTER(
Contrato,
Contrato[FechaSalida] <= SELECTEDVALUE( DateTable[Date] ) &&
Contrato[FechaRetorno] >= SELECTEDVALUE( DateTable[Date] )
)
)
The expected output is the total active clients by the selected date, that should include those who started the service before the selected date.
This is a representation of the total # I'm looking for:
Thanks in advanced.
Solved! Go to Solution.
Could you try these: (Ignore what I said before to use ALL)
1. Create a duplicate table of date as below (you can refine the columns if needed later, once you get the solution) and make sure in the model it is not connected to the transaction table "Contrato".
Date Table 2 = DateTable
2. Add the date range slicer using Date column for the "Date Table 2"
3. Add this measure into your group
Contratos Activos 2 =
VAR _Min_FilterDate = MIN('Date Table 2'[Date])
VAR _Max_FilterDate = Max('Date Table 2'[Date])
RETURN
CALCULATE(
COUNTROWS(Contrato), Contrato[FechaSalida] <= _Max_FilterDate, Contrato[FechaRetorno] >= _Min_FilterDate, REMOVEFILTERS('Date Table 2')
)
4. Add the table visual ( I added dummy date range visual to show the selected date range, which is not your requirement though)
See if this helps!
Also, if what you are doing is inflight events or events in progress pattern.
then check this article for more details too: https://www.daxpatterns.com/events-in-progress/
I don't know spanish, have to google and understand the column names meaning.
Thanks for the replies from sevenhills and Ashish_Mathur.
Hi @dustdaniel ,
Did you get your problem solved, based on your description I created simple data and got the expected result, hope this will fulfill your requirement, here is the sample data:
1.Create a measure:
Measure =
VAR _max=MAX('date'[Date])
VAR _min=MIN('date'[Date])
RETURN
CALCULATE(
COUNTROWS('Table'),
FILTER(ALL('Table'),'Table'[StartDate]>=_min&&'Table'[EndDate]<=_max))
2.Since you don't want past customer information, create a new measure for filtering:
Measure2 =
VAR _min=MIN('date'[Date])
VAR _max=MAX('date'[Date])
RETURN
if(MIN('Table'[StartDate])>=_min&&MAX('Table'[EndDate])<=_max,1,0)
3.The final result is as follows:
Best Regards,
Zhu
Community Support Team
If there is any post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Hi Zhu,
I tried what you suggested but I couldn't make it work, would you take a look to the sample I posted recently?
Try this:
Contratos Activos =
var _paramDt = SELECTEDVALUE( DateTable[Date] )
RETURN CALCULATE(
[Total Contratos],
FILTER(
ALLSELECTED(Contrato),
Contrato[FechaSalida] <= _paramDT && Contrato[FechaRetorno] >= _paramDT
)
)
... if not use ALL in place of ALLSELECTED
Thankyou @sevenhills
It looks good, I just need to validate if this is correct, but I guess because it includes the ALL funtion in filter, in the matirx on the right is not listing the 859 selected. any thoughts how I could confirm?
Active clients normaly are no longer than 30 days periods, so clientes from 2022 shouldn't be listed
PD: didn't work with ALLSELECTED, I used ALL instead as you recommended.
Thanks
pls. could you share the screenshot of the model linked between tx table and date table; and the formula used for the measure [Total Contratos]
One of these are your usecase scenarios.
https://community.fabric.microsoft.com/t5/Desktop/List-of-active-employees-on-a-date/td-p/1609370
https://community.fabric.microsoft.com/t5/Desktop/Count-events-between-two-dates/td-p/2832766
... Key is the calendar table should not be linked
Thank you Sevenhills,
I tried what yo suggested but it's not complettly accurate the result, I managed to duplicate the fact table so I would not have a relationship with the Calendar table (I didn't use the original since it will affect may other measures).
If I do it without relationship, it doens´t count the rows.
If I use the relationship, It does count the rows but there are some erros in the result, like showing active clients in future dates (it´s not corrrect)
Please let me know what could I do?
I created a sample file by removing all sensitive data File_Here
Sorry if my earlier response is not clear.
It is the calendar table that needs a copy and not fact table. And use this calendar date table for slicers. Hope it clarifies.
Meanwhile, I am looking into your .pbix file and see how I can fix it ...
Could you try these: (Ignore what I said before to use ALL)
1. Create a duplicate table of date as below (you can refine the columns if needed later, once you get the solution) and make sure in the model it is not connected to the transaction table "Contrato".
Date Table 2 = DateTable
2. Add the date range slicer using Date column for the "Date Table 2"
3. Add this measure into your group
Contratos Activos 2 =
VAR _Min_FilterDate = MIN('Date Table 2'[Date])
VAR _Max_FilterDate = Max('Date Table 2'[Date])
RETURN
CALCULATE(
COUNTROWS(Contrato), Contrato[FechaSalida] <= _Max_FilterDate, Contrato[FechaRetorno] >= _Min_FilterDate, REMOVEFILTERS('Date Table 2')
)
4. Add the table visual ( I added dummy date range visual to show the selected date range, which is not your requirement though)
See if this helps!
Also, if what you are doing is inflight events or events in progress pattern.
then check this article for more details too: https://www.daxpatterns.com/events-in-progress/
I don't know spanish, have to google and understand the column names meaning.
Thank you Sevenhills!!
I was able to validate the numbers and the count is correct!
Glad to hear that it worked!
Tip: For the Date Table 2, if you are planning to use only for the slicer, then you can remove all other columns. Reason: As the grain of the date table is date and being maintained and other columns are unwanted.
Nostalgia: Mosha was one of the key members of MDX, SSAS world during 2002 - 2013. he used to call this as inflight events when he was at Microsoft. Later he left to Google and then different company. That is when I learnt this concept. 🙂
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.
User | Count |
---|---|
72 | |
71 | |
57 | |
38 | |
36 |
User | Count |
---|---|
83 | |
67 | |
62 | |
46 | |
45 |