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

Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes! Register now.

Reply
BG919
Frequent Visitor

Measure to count items active during a specific month

I am trying to write a measure that counts all items that were active in a given month, even if they are closed now. 

 

UniqueIDReportedDateClosedDateWorkflowState
11/5/20231/12/2023Closed
21/7/2023 Active
31/14/20232/9/2023Closed
42/9/20233/24/2023Closed
53/4/2023 Active
63/12/20235/15/2023Closed
74/2/20235/15/2023Closed
84/5/20234/18/2023Closed
94/9/2023 Active

 

The output I am looking for based on this sample data:

  • The January count would be 3
    • ID 2 that is still active
    • ID 1 that is closed but was active during January
    • ID 3 that closed after January's completion
  • The February count would be 3
    • ID 2 that is still active.
    • ID 3 that closed in February but was active at some point during the month.
    • ID 4 opened in February but closed after the month's completion.
  • The March count would be 4
    • ID 2 and 5 that are still active
    • ID 4 that closed in March but was active during the month
    • ID 6 that closed after March's completion.
  • The April count would be 6: 
    • ID 2, 5, and 9 that are still active
    • ID 8 that closed in April but was active during the month
    • ID 6 and 7 that closed after April's completion.

The ultimate intent is to plot this on a line and clustered column chart aggregated at the year-month level - the line value trending how many total items were active from month-to-month, the columns showing how many items were opened or closed during that month. I already have the measures to do the bar values.

 

Thanks in advance for your input!

2 ACCEPTED SOLUTIONS
gmsamborn
Super User
Super User

Hi @BG919 

 

Would a measure like this help?

 

Active = 
VAR _Curr = MAX( 'Date'[Date] )
VAR _EndOfMonth = EOMONTH( _Curr, 0 )
VAR _StartOfMonth = EOMONTH( _Curr, -1 ) + 1
VAR _Count =
    COUNTROWS(
        FILTER(
            ALLSELECTED( 'Table'[ReportedDate], 'Table'[ClosedDate] ),
            'Table'[ReportedDate] < _EndOfMonth
                && OR(
                        'Table'[ClosedDate] = BLANK(),
                        'Table'[ClosedDate] > _StartOfMonth
                )
        )
    )
RETURN
    _Count

 

 

 

Active during month.pbix

 



Proud to be a Super User!

daxformatter.com makes life EASIER!

View solution in original post

Hi @BG919 

 

Sorry about that.

 

Try this:

Active = 
VAR _Curr = MAX( 'Date'[Date] )
VAR _EndOfMonth = EOMONTH( _Curr, 0 )
VAR _StartOfMonth = EOMONTH( _Curr, -1 ) + 1
VAR _Count =
    COUNTROWS(
        FILTER(
            ALLSELECTED( 
                'Table'[ReportedDate], 
                'Table'[ClosedDate],
                'Table'[UniqueID]
            ),
            'Table'[ReportedDate] < _EndOfMonth
                && OR(
                        'Table'[ClosedDate] = BLANK(),
                        'Table'[ClosedDate] > _StartOfMonth
                )
        )
    )
RETURN
    _Count

 

Let me know if that helps.



Proud to be a Super User!

daxformatter.com makes life EASIER!

View solution in original post

4 REPLIES 4
gmsamborn
Super User
Super User

Hi @BG919 

 

Would a measure like this help?

 

Active = 
VAR _Curr = MAX( 'Date'[Date] )
VAR _EndOfMonth = EOMONTH( _Curr, 0 )
VAR _StartOfMonth = EOMONTH( _Curr, -1 ) + 1
VAR _Count =
    COUNTROWS(
        FILTER(
            ALLSELECTED( 'Table'[ReportedDate], 'Table'[ClosedDate] ),
            'Table'[ReportedDate] < _EndOfMonth
                && OR(
                        'Table'[ClosedDate] = BLANK(),
                        'Table'[ClosedDate] > _StartOfMonth
                )
        )
    )
RETURN
    _Count

 

 

 

Active during month.pbix

 



Proud to be a Super User!

daxformatter.com makes life EASIER!

The measure worked on the sample dataset, but broke down when I applied it on my full dataset. I was able to figure out where it was going wrong, but was not able to adjust the measure to account for it.

 

The issue comes up when you have two records with the same open date and same close date. So if we added a 10th row that had a report date of 1/5/2023 and close date of 1/12/2023 (same as ID 1), my January count would still show as 3 rather than 4; the measure is treating those two as if they are the same record.

Hi @BG919 

 

Sorry about that.

 

Try this:

Active = 
VAR _Curr = MAX( 'Date'[Date] )
VAR _EndOfMonth = EOMONTH( _Curr, 0 )
VAR _StartOfMonth = EOMONTH( _Curr, -1 ) + 1
VAR _Count =
    COUNTROWS(
        FILTER(
            ALLSELECTED( 
                'Table'[ReportedDate], 
                'Table'[ClosedDate],
                'Table'[UniqueID]
            ),
            'Table'[ReportedDate] < _EndOfMonth
                && OR(
                        'Table'[ClosedDate] = BLANK(),
                        'Table'[ClosedDate] > _StartOfMonth
                )
        )
    )
RETURN
    _Count

 

Let me know if that helps.



Proud to be a Super User!

daxformatter.com makes life EASIER!
TomMartens
Super User
Super User

Hey @BG919 ,

 

the challenge you are facing is called event-in-progress. This article "https://blog.gbrueckl.at/2014/12/events-in-progress-for-time-periods-in-dax/" by Gerhard Brueckl references all the relevant articles you need to know to tackle your challenge. Start with the one by Jason Thomas.

 

Regards,

Tom



Did I answer your question? Mark my post as a solution, this will help others!

Proud to be a Super User!
I accept Kudos 😉
Hamburg, Germany

Helpful resources

Announcements
September Power BI Update Carousel

Power BI Monthly Update - September 2025

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

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
Top Kudoed Authors