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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

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
Employee
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
Employee
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
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.