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

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
tktmastr
Helper I
Helper I

Calculating Consecutive Years Active

Hi,

 

I am trying to figure out how to calculate the # of years a donor has been active.... if they have skipped a year, I want it to start over again.

 

i.e. in the table below, customer #2 should only be active for one year, because they did not donate in 2019. I can't figure how how to do this if they skipped a year or more. 

 

Thanks!

 

Data Table 
Customer IDFiscal Year
12018
12019
12020
22017
22018
22020
32020
42017
42018
42019
42020

 

Expected Result

Customer IDConsecutive Donor Years
13
21
31
44
1 ACCEPTED SOLUTION
mahoneypat
Microsoft Employee
Microsoft Employee

Please try this measure expression in a table visual with your Fiscal Year column, replace Donors with your actual table name.

 

Consec Yrs =
VAR vMaxYear =
    MAX ( Donors[Fiscal Year] )
VAR vThisCustomer =
    MIN ( Donors[Customer ID] )
VAR vLatestNotDonation =
    MAXX (
        FILTER (
            ALL ( Donors[Fiscal Year] ),
            ISBLANK (
                CALCULATE (
                    COUNTROWS ( Donors ),
                    Donors[Customer ID] = vThisCustomer
                )
            )
        ),
        Donors[Fiscal Year]
    )
VAR vLatestIfBlank =
    IF (
        ISBLANK ( vLatestNotDonation ),
        MINX (
            ALL ( Donors[Fiscal Year] ),
            Donors[Fiscal Year]
        ) - 1,
        vLatestNotDonation
    )
RETURN
    IF (
        vMaxYear = 2020,
        vMaxYear - vLatestIfBlank
    )

 

Pat

 





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


View solution in original post

1 REPLY 1
mahoneypat
Microsoft Employee
Microsoft Employee

Please try this measure expression in a table visual with your Fiscal Year column, replace Donors with your actual table name.

 

Consec Yrs =
VAR vMaxYear =
    MAX ( Donors[Fiscal Year] )
VAR vThisCustomer =
    MIN ( Donors[Customer ID] )
VAR vLatestNotDonation =
    MAXX (
        FILTER (
            ALL ( Donors[Fiscal Year] ),
            ISBLANK (
                CALCULATE (
                    COUNTROWS ( Donors ),
                    Donors[Customer ID] = vThisCustomer
                )
            )
        ),
        Donors[Fiscal Year]
    )
VAR vLatestIfBlank =
    IF (
        ISBLANK ( vLatestNotDonation ),
        MINX (
            ALL ( Donors[Fiscal Year] ),
            Donors[Fiscal Year]
        ) - 1,
        vLatestNotDonation
    )
RETURN
    IF (
        vMaxYear = 2020,
        vMaxYear - vLatestIfBlank
    )

 

Pat

 





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

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.