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
m_richardson
Frequent Visitor

Custom Column: Status based on future transactions

Hi

 

I have a table that contains data that looks like this:

 

m_richardson_1-1670838727688.png

Where I am tracking monthly transactions by Customer.  I've included the first day of the month to aid sorting etc. 

 

What I'd like to do is to apply a custom column to this so I can derive an activity status for each customer by month.  So, for example:

 

If the customer has transacted = 'active'

If they have not transacted = 'inactive (x)' - where x is the number of months they have been inactive for

If they have transacted again after at least one inactive month = 'reactivated'

 

The output would look something like this:

 

m_richardson_3-1670839039719.png

 

I'm assuming DAX is the best method to do this but I'm a little stuck as to where to start.  Any help gratefully received.

1 ACCEPTED SOLUTION
amitchandak
Super User
Super User

@m_richardson , you need new column like

 

var _max = maxx(filter(Table, Table[Customer ID] = earlier([Customer ID]) && [First Day Month] < earlier([First Day Month])),[First Day Month])
var _value = maxx(filter(Table, Table[Customer ID] = earlier([Customer ID]) && [First Day Month]=_max),[Transactions])
return
Switch( True(),
isblank(_max) && isblank([Transactions]), "Inactive",
isblank(_max) && not(isblank([Transactions])), "active",
not(isblank(_max)) && (isblank(_value)) && not(isblank([Transactions])), "reactive",
not(isblank([Transactions])), "active",
"Inactive"
)

 

 

for inctive count you need

Continuous streak : https://youtu.be/GdMcwvdwr0o

View solution in original post

3 REPLIES 3
amitchandak
Super User
Super User

@m_richardson , you need new column like

 

var _max = maxx(filter(Table, Table[Customer ID] = earlier([Customer ID]) && [First Day Month] < earlier([First Day Month])),[First Day Month])
var _value = maxx(filter(Table, Table[Customer ID] = earlier([Customer ID]) && [First Day Month]=_max),[Transactions])
return
Switch( True(),
isblank(_max) && isblank([Transactions]), "Inactive",
isblank(_max) && not(isblank([Transactions])), "active",
not(isblank(_max)) && (isblank(_value)) && not(isblank([Transactions])), "reactive",
not(isblank([Transactions])), "active",
"Inactive"
)

 

 

for inctive count you need

Continuous streak : https://youtu.be/GdMcwvdwr0o

Hi @amitchandak - this works for active and inactive, but not reactivated for some reason.

Apologies - please ignore, I managed to get it to work.  Great solution (and I learned something about the EARLIER function as well, so that's a bonus).

 

Thanks!

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.