This is second part of 2 part series on conditionally formatting dates in excel.
In yesterday’s post we have learned how to conditionally format dates using excel. In this article, you will learn how to use these conditional formatting tricks to highlight repeat customers in a list of sales records.
The problem: Highlighting repeated customers in a list
Let us say you run a small retail store. And you want to give special discounts to all the repeat customers.
Repeat customer is someone who bought at least twice from you in last 30 days. (If the person bought twice but the gap between 2 purchases is more than 30 days they are not repeat customers).
The Data:
Let us assume your sales data has these 2 columns – customer ID and purchase date. I have shown first few rows here. Let us assume the data is in the range B4:C53.
Finding if a customer is repeat – The Formula:
If we just want to highlight without considering the purchase dates,
we can use a simple formula like =COUNTIF($B4:$B53,$B3)>1 in the conditional formatting applied over the range B4:C53.
But we need to consider the date as well,
hmm, now that is tricky !??
May be time for a sip of that coffee. Go take it, I am waiting..,
How about the SUMPRODUCT? We all know that sumproduct formula can be used to test more than one condition.
The formula:
=IF(C4>TODAY()-30,IF(SUMPRODUCT(--($B$4:$B$53=B4),--($C$4:$C$53>(TODAY()-30)))>1,"R","N"),"N")
Now that is one lengthy badass formula. Like Sergeant Martin Riggs. Bad, but still cool.
So what is this formula really doing? It is going to give us “R” if a customer is repeat and “N” if not. See this explanation to understand how it works.
Note: the double dashes “–” make the values as 0s and 1s from a bunch of “trues” “falses”. To know why sumproduct is such a beautiful and robust formula look no further.
The Conditional Formatting
Now that you have figured out the formula to determine a customer is repeat or not, applying conditional formatting is a piece-o-cake.
Just select the range B4:C53, go to conditional formatting and select “formula” option. Now specify the above formula and check if its output is “R” and apply formatting.
I am not telling you how to do this. It is your homework. Go figure!
That is all. Your workbook now highlights repeat customers in the last 30 days. Remember, as you reopen the file a week later, the highlighting logic changes since the date has changed.
Download the example workbook
Click here to download the example workbook and understand how to highlight repeat customers using conditional formatting. The file works in Excel 2003+.
What is your experience?
Share your tips and ideas on using conditional formatting with dates. What are the situations you usually face and how to solve them? I am never too old for this, so please share.
13 Responses to “Highlighting Repeat Customers using Conditional Formatting [Part 2 of 2]”
Looks like you're sitting next to me at work !!!
I've read about finding duplicates (I believe in Debra's Contextures), and now I am just comparing info from 2 different spreadsheets, finding not only duplicates within each sheet, but also if the sum of each single item matches the corresponding on the other sheet...
Kind of nesting duplicates.....!!!
since I am using 2003, I found much useful to add a column with the duplicate flag rather than the conditional formatting, but still, it helps visualizing them.
Great post !!
Rgds,
Martín.
@Martin... enough commenting, lets go for a coffee.
thanks, I am glad you like this.
Lol !!!
any suggestions on how to approach this badass job? kinda programming 101, but still, it's taking me A LOT of time to figuring it out....
I think you can avoid the 1st IF and get the same results.
=IF(SUMPRODUCT(--($B$4:$B$53=B4),--($C$4:$C$53>(TODAY()-30)))>1,"R","N")
Regards
Very nice! I especially like that you broke down the formula.
Great start for the new year 😉
@Elias: No, without the first IF condition, all the customer records older than 30 days (ie purchases in previous months) will also be highlighted.
@Venus.. thank you.
@Martin: Are you looking for a formula that would calculate the sum of values? You can use the SUMIF for that if there is only one criteria. Otherwise use SUMPRODUCT almost in the same way as above. See this sumproduct tutorial if you have doubts. http://chandoo.org/wp/2009/11/10/excel-sumproduct-formula/
@Chando: Records older than 30 days won't be count because the second condition of the SUMPRODUCT formula. --($C$4:$C$53>(TODAY()-30))
Regards
@Elias... agree, but this wont work for us in this situation because even if customer becomes "repeat" in December, his ID will be highlighted against November dates as well. That is why I used the second IF. But if you just select all the highlighted customers and get a unique list out of it, they all should be same.
Nice job by chandoo and team....at a time i want 2 know more n more about excel and become awesome as ur noume
I like this formula, but I'm wanting to use it to do something slightly different. I have a vast list of job numbers, and on occasion we end up with duplicates when one is cancelled for whatever reason. Sometimes because the job truly is cancelled, other times it is accidentally input into the system twice so one of them is cancelled. So we run a report that shows a list of cancelled jobs. I want to highlight any of the jobs on the cancelled list, that also appear on the active jobs list. But here's where the coffee (or chai) becomes necessary; the job number may be duplicated on a different projects, so I would have to ensure that if the job # in cell B2 and the project in cell C2 both appear on the same row on page2 columns A & B, highlight B2 green. I think the badass formula is close to what I need, but I don't know how to alter it the way I need.
Thanks in advance for your help,
The Doctor
I need to reflect in my 2nd sheet, that a certain address within the last 365 days was involved more than (2xs; two times in a year).
and brings only that file and not any other files not identified.
Hi! Thank you for the content, it`s very helpful!
As far as I understand, the formula works, when one of the sales should be in last 30 days, but, in case of 2 sales within last 30 days it doesn`t work, because --($B$4:$B$53=B4) does not take into account repeats with this condition C4>TODAY()-30 in whole column B. i`ll be grateful for your explanations
So if there are multiple products purchased by the customer in each order, then the repeat will include each of the products
Say a in a month a customer buys coke and fanta in one order and sprite and thumsp up in a second order . the total repeat by the customer is only two. but due to 4 line items driven by the products the repeat will show as 4. How can this be avoided?