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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
jwisrael
Frequent Visitor

Question on relative time

I'm looking to create a custom column based on a date range to show customer activity.
Active = last invoice date within last four months
Active B= last invoice date within last 5-8 months
Active c= last invoice date  within last 9-12 months
Inactive = last invoice date beyond 12months.
 
I can't seem to figure out the best way to do this, any help or guidance would be appreciated,
 
Thank you,
2 ACCEPTED SOLUTIONS
mahoneypat
Employee
Employee

Please try a column expression like this (DAX column, not a query column)

 

Invoice Status =
VAR vMonthsOld =
    DATEDIFF (
        Table[InvoiceDate],
        TODAY (),
        MONTH
    )
VAR vResult =
    SWITCH (
        TRUE (),
        vMonthsOld <= 4"Active",
        vMonthsOld <= 8"Active A",
        vMonthsOld <= 12"Active B",
        "Inactive"
    )
RETURN
    vResult

 

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

mahoneypat
Employee
Employee

Yes.  I think you could replace the vMonthsOld variable with

 

vMonthsOld = CALCULATE(MAX('P21&IBS Data'[Date]), ALLEXCEPT('P21&IBS Data', 'P21&IBS Data'[CustomerName]))

 

If not, please share some representative mock data for a modified solution.

 

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

4 REPLIES 4
mahoneypat
Employee
Employee

Yes.  I think you could replace the vMonthsOld variable with

 

vMonthsOld = CALCULATE(MAX('P21&IBS Data'[Date]), ALLEXCEPT('P21&IBS Data', 'P21&IBS Data'[CustomerName]))

 

If not, please share some representative mock data for a modified solution.

 

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


I eneded up creating another date column for last invocie date and using that in the model you provided. Worked great, plus I can have a column that tells me their exact last invoice dat. I appreciate your help, thank you.

 

JW

mahoneypat
Employee
Employee

Please try a column expression like this (DAX column, not a query column)

 

Invoice Status =
VAR vMonthsOld =
    DATEDIFF (
        Table[InvoiceDate],
        TODAY (),
        MONTH
    )
VAR vResult =
    SWITCH (
        TRUE (),
        vMonthsOld <= 4"Active",
        vMonthsOld <= 8"Active A",
        vMonthsOld <= 12"Active B",
        "Inactive"
    )
RETURN
    vResult

 

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


Thank you! This worked great, however, because my data goes line by line with invoices, this just bases it on where the date falls with that specific invoice. Is there a way to highlight the relative time from last invoice date by customer name within the expression you sent? I tried adding this into the expression, 

Last Customer Invoice Date = CALCULATE(LASTDATE('P21&IBS Data'[Date]), ALLEXCEPT('P21&IBS Data','P21&IBS Data'[CustomerName])).
 

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors
Top Kudoed Authors