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

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now

Reply
SteveCarter1
Advocate II
Advocate II

Best way to graph number of times a date appears in a column that is a list of dates?

Hi

 

Hoping someone has some creative thoughts that might help.

I have a WaitList table that has 2 columns: Client ID and 'Dates Waiting'. Dates Waiting is a colon separated list of dates.

I've copied sample data below.

I also have a separately  created date table, called MasterCalendar. It has a date column that is contiguous and spans the range of dates within the 'Dates Waiting' list.

If I create a line graph with X-Axis using the Date from the MasterCalendar, how could I create a measure to count the number of clients that have a matching date in the 'Dates Waiting' column?

I tried using M Query List expressions and was able to get the dates into a list then expand the list into new rows, then create a relationship between the MasterCalendar Date column and the expanded date column in the WaitList table. This was simple and worked fine as I just graphed the count of clients per date.

My problem is I have so many dates and clients that if I go back any further than about 6 months, the list expansion function blows out to 100's of billions of rows. On my desktop I stopped it after 2 days.  Uploading it to the PBI service, unsurprisingly, timed out after 2 hours, hence why I am looking for another way of approaching this problem.

ClientIdDates Waiting
9896183/08/2021:4/08/2021:5/08/2021:6/08/2021:7/08/2021:8/08/2021:9/08/2021:10/08/2021:11/08/2021:12/08/2021:13/08/2021:14/08/2021:15/08/2021:16/08/2021:17/08/2021:18/08/2021:19/08/2021:20/08/2021:21/08/2021:22/08/2021:23/08/2021:24/08/2021:25/08/2021:26/08/2021:27/08/2021:28/08/2021:29/08/2021:30/08/2021:31/08/2021:1/09/2021:2/09/2021
9890653/08/2021:4/08/2021:5/08/2021:6/08/2021:7/08/2021:8/08/2021:9/08/2021:10/08/2021:11/08/2021:12/08/2021:13/08/2021:14/08/2021:15/08/2021:16/08/2021:17/08/2021:18/08/2021:19/08/2021:20/08/2021:21/08/2021:22/08/2021:23/08/2021:24/08/2021:25/08/2021:26/08/2021:27/08/2021:28/08/2021:29/08/2021:30/08/2021:31/08/2021:1/09/2021:2/09/2021
9880574/08/2021:5/08/2021:6/08/2021:7/08/2021:8/08/2021:9/08/2021:10/08/2021:11/08/2021:12/08/2021:13/08/2021:14/08/2021:15/08/2021:16/08/2021:17/08/2021:18/08/2021:19/08/2021:20/08/2021:21/08/2021:22/08/2021:23/08/2021:24/08/2021:25/08/2021:26/08/2021:27/08/2021:28/08/2021:29/08/2021:30/08/2021:31/08/2021:1/09/2021:2/09/2021
9850895/08/2021:6/08/2021:7/08/2021:8/08/2021:9/08/2021:10/08/2021:11/08/2021:12/08/2021:13/08/2021:14/08/2021:15/08/2021:16/08/2021:17/08/2021:18/08/2021:19/08/2021:20/08/2021:21/08/2021:22/08/2021:23/08/2021:24/08/2021:25/08/2021:26/08/2021:27/08/2021:28/08/2021:29/08/2021:30/08/2021:31/08/2021:1/09/2021:2/09/2021
9897165/08/2021:6/08/2021:7/08/2021:8/08/2021:9/08/2021:10/08/2021:11/08/2021:12/08/2021:13/08/2021:14/08/2021:15/08/2021:16/08/2021:17/08/2021:18/08/2021:19/08/2021:20/08/2021:21/08/2021:22/08/2021:23/08/2021:24/08/2021:25/08/2021:26/08/2021:27/08/2021:28/08/2021:29/08/2021:30/08/2021:31/08/2021:1/09/2021:2/09/2021
9731895/08/2021:6/08/2021:7/08/2021:8/08/2021:9/08/2021:10/08/2021:11/08/2021:12/08/2021:13/08/2021:14/08/2021:15/08/2021:16/08/2021:17/08/2021:18/08/2021:19/08/2021:20/08/2021:21/08/2021:22/08/2021:23/08/2021:24/08/2021:25/08/2021:26/08/2021:27/08/2021:28/08/2021:29/08/2021:30/08/2021:31/08/2021:1/09/2021:2/09/2021
9897445/08/2021:6/08/2021:7/08/2021:8/08/2021:9/08/2021:10/08/2021:11/08/2021:12/08/2021:13/08/2021:14/08/2021:15/08/2021:16/08/2021:17/08/2021:18/08/2021:19/08/2021:20/08/2021:21/08/2021:22/08/2021:23/08/2021:24/08/2021:25/08/2021:26/08/2021:27/08/2021:28/08/2021:29/08/2021:30/08/2021:31/08/2021:1/09/2021:2/09/2021
8690229/08/2021:10/08/2021:11/08/2021:12/08/2021:13/08/2021:14/08/2021:15/08/2021:16/08/2021:17/08/2021:18/08/2021:19/08/2021:20/08/2021:21/08/2021:22/08/2021:23/08/2021:24/08/2021:25/08/2021:26/08/2021:27/08/2021:28/08/2021:29/08/2021:30/08/2021:31/08/2021:1/09/2021:2/09/2021
9317009/08/2021:10/08/2021:11/08/2021:12/08/2021:13/08/2021:14/08/2021:15/08/2021:16/08/2021:17/08/2021:18/08/2021:19/08/2021:20/08/2021:21/08/2021:22/08/2021:23/08/2021:24/08/2021:25/08/2021:26/08/2021:27/08/2021:28/08/2021:29/08/2021:30/08/2021:31/08/2021:1/09/2021:2/09/2021
9357889/08/2021:10/08/2021:11/08/2021:12/08/2021:13/08/2021:14/08/2021:15/08/2021:16/08/2021:17/08/2021:18/08/2021:19/08/2021:20/08/2021:21/08/2021:22/08/2021:23/08/2021:24/08/2021:25/08/2021:26/08/2021:27/08/2021:28/08/2021:29/08/2021:30/08/2021:31/08/2021:1/09/2021:2/09/2021
9731899/08/2021:10/08/2021:11/08/2021:12/08/2021:13/08/2021:14/08/2021:15/08/2021:16/08/2021:17/08/2021:18/08/2021:19/08/2021:20/08/2021:21/08/2021:22/08/2021:23/08/2021:24/08/2021:25/08/2021:26/08/2021:27/08/2021:28/08/2021:29/08/2021:30/08/2021:31/08/2021:1/09/2021:2/09/2021
98982112/08/2021:13/08/2021:14/08/2021:15/08/2021:16/08/2021:17/08/2021:18/08/2021:19/08/2021:20/08/2021:21/08/2021:22/08/2021:23/08/2021:24/08/2021:25/08/2021:26/08/2021:27/08/2021:28/08/2021:29/08/2021:30/08/2021:31/08/2021:1/09/2021:2/09/2021
98949212/08/2021:13/08/2021:14/08/2021:15/08/2021:16/08/2021:17/08/2021:18/08/2021:19/08/2021:20/08/2021:21/08/2021:22/08/2021:23/08/2021:24/08/2021:25/08/2021:26/08/2021:27/08/2021:28/08/2021:29/08/2021:30/08/2021:31/08/2021:1/09/2021:2/09/2021
98982812/08/2021:13/08/2021:14/08/2021:15/08/2021:16/08/2021:17/08/2021:18/08/2021:19/08/2021:20/08/2021:21/08/2021:22/08/2021:23/08/2021:24/08/2021:25/08/2021:26/08/2021:27/08/2021:28/08/2021:29/08/2021:30/08/2021:31/08/2021:1/09/2021:2/09/2021
1 ACCEPTED SOLUTION
amitchandak
Super User
Super User

@SteveCarter1 , Split by delimiter is the best way for this , as you can get dates to filter.

 

If you need only the total count of date -List.Count(Text.Split([Dates Waiting]))

 

Another way but that will work for one date at a time with same struture

 

Select a date from independent date slicer

 

measure =

var _dt = format(selectedvalue('date'[date]))

return

countrows(filter(Table, Search(_dt,[Dates Waiting],,0) >0))

 

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

View solution in original post

2 REPLIES 2
amitchandak
Super User
Super User

@SteveCarter1 , Split by delimiter is the best way for this , as you can get dates to filter.

 

If you need only the total count of date -List.Count(Text.Split([Dates Waiting]))

 

Another way but that will work for one date at a time with same struture

 

Select a date from independent date slicer

 

measure =

var _dt = format(selectedvalue('date'[date]))

return

countrows(filter(Table, Search(_dt,[Dates Waiting],,0) >0))

 

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

Hi Amit

As usual, thanks a lot!  Nice benefit there is I also don't need a date relationship for it to work, which owkrs very much in my favor.

Helpful resources

Announcements
November Power BI Update Carousel

Power BI Monthly Update - November 2025

Check out the November 2025 Power BI update to learn about new features.

Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors