One of the most popular posts on this blog is how to become excel conditional formatting rock star. Quite a few commenters there asked me if there is a way to get more than 3 (or 4) conditional formats in excel 2003. Like what you see below:
You can get more than three conditional formats in excel using VBA / macros. Last week I had sometime to put together a simple VBA script using which you can get more than 3 conditional formats in Microsoft excel. Just follow the below 3 steps.
- Download the VBA Macro for getting more than 3 conditional formats
Just copy the VBA Macro cFormat() to your workbook or place it in wherever you keep all your macros. - In your workbook, define 3 named ranges.
data2use: This range contains the cells to be formatted.
conditions2use: This range is identical in shape and size to data2use and contains conditions for the data range start from 1 to n (n being the maximum number of conditional formats your would like to have)
formats2use: This range contains “n” cells each formatted in a way you would like to format the cells in data2use range.See this illustration to understand how these 3 ranges are used to create more than 3 conditional formats:
- Finally hit Alt+F8 (or menu > tools > macro > macros) and run the cFormat macro. The conditional formatting macro you have just downloaded will format the “data2use” range by scanning “conditions2use” range and using the formats in “formats2use” range. If you are curious to see how the VBA script looked like, see the cFormat macro code
- Make sure you have downloaded the workbook with code for getting more than 3 conditional formats in excel
What would you use this trick for? A giant heat map, project plan … ?
















10 Responses to “Multiple Find Replace with Power Query List.Accumulate()”
Note: The text-formula above miss a -1. The video is correct.
😀 sorry, I made the exact same mistake as you did - initially - in the video. {0..3} is one thing, and Table.RowCount(replacements) -->3 items ={0,1,2} is another thing.
1st question : you've created a new column to put the replacements in. how ca we replace in the original column without creating a new one ?
2nd question : how can we replace the value in the entire cell and not only the text (Using ReplaceValue instead of text.Replace) ?
Thanks you in advance
Chandoo, I would be very interested to have your answers in both Yassine's questions!
Thank you for sharing,
Vassilis
Thank you for this! I was just doing an assignment where I was having to replace words with other words in my Excel sheet. We are starting with the basics in my class, so I know I don't have a huge list that I would need to find and replace, but this is something that could be useful down the road for me!
Hi
This is nearly perfect for my needs thank you, however I would like just the "replace" to be the result if possible please, I have tried in vain adjusting the formula without success.
Thank you in advance
Thank you! Awesome tip, and very flexible, too.
My find/replace values were in non-adjacent columns of a table containing a bunch of other data. Worked prefectly and I am now a tiny bit less clueless.
Hi!!!
I have the same question that Yassine did.
I need to replace the values in the same column. I don't want to create a new column e then have to remove the old column.
How could I could that?
That's a real fun article. It inspired me to delve deeper into the topic of List.Accumulate. I can see how the function works, but it takes an additional step to imagine how one can use it for more complex applications.
Your example also made it into my article, together with some other use-cases. Would be great to get your opinion on which other areas you would include in the article.
Let me drop the link to the page so others can too find it for further reading: https://gorilla.bi/power-query/list-accumulate/
Expression.Error: The name 'replacements' wasn't recognized. Make sure it's spelled correctly.