Beyond If and Sum, 15 really useful excel formulas for everyone

Share

Facebook
Twitter
LinkedIn

Excel formulas can always be very handy, especially when you are stuck with data and need to get something done fast. But how well do you know the spreadsheet formulas?

Discover these 15 extremely powerful excel formulas and save a ton of time next time you open that spreadsheet.

1. Change the case of cell contents – to UPPER, lower, Proper

Boss wants a report of top 100 customers, thankfully you have the data, but the customer names are all in lower cases. Fret not, you can Proper Case cell contents with proper() formula.

Example: Use proper("pointy haired dilbert") to get Pointy Haired Dilbert

Also try lower() and upper() as well to change excel cell value to lower and UPPER case

2. Clean up textual data with trim, remove trailing spaces

Often when you copy data from other sources, you are bound to get lots of empty spaces next to each cell value. You can clean up cell contents with trim() spreadsheet function.

Example: Use trim(" copied data ") to get copied data

3. Extract characters from left, right or center of a given text

Need the first 5 letters of that SSN or area code from that phone number? You can command excel to do that with left() function.

Example: Use left("Hi Beautiful!",2) to get Hi

Also try right(text, no. of chars) and mid(text, start, no. of chars) to get rightmost or middle characters. You can use right(filename,3) to get the extension of a file name 😉

4. Find second, third, fourth element in a list without sorting

We all know that you can use min(), max() to find the smallest and largest numbers in a list. But what if you needed the second smallest number or 3rd largest number in the list? You are right, there is a spreadsheet function to exactly that.

Example: Use SMALL({10,9,12,14,26,13,4,6,8},3) to get 8

small-excel-formula-find-nth-small-number-in-list

Also try large(list, n) to get the nth largest number in a list.

5. Find out current date, time with a snap

You have a list of customer orders and you want to findout which ones are due for shipping after today. The funny thing is you do this everyday. So instead of entering the date every single day you can use today()

Example: Use today() to get 08/13/2008 or whatever is today’s date

Also try now() to get current time in date time format. Remember, you can always format these date and times to see them the way you like (for eg. Aug-13, August 13, 2008 instead of 08/13/2008)

6. Convert those lengthy nested if functions to one simple formula with Choose()

Planning to create a gradebook or something using excel, you are bound to write some if() functions, but do you know that you can use choose() when you have more than 2 outcomes for a given condition? As you all know, if(condition, fetch this, or this) returns “fetch this” if the condition is TRUE or “or this” if the condition is FALSE. Learn more about spreadsheet if functions like countif, sumif etc.

Where as choose(m, value1, value2, value3, value4 ...) can return any of the value1,2.., based on the parameter m.

Example: Use CHOOSE(3,"when","in","doubt","just","choose")
to get doubt

Remember, you can always write another formula for each of the n parameters of choose() so that based on input condition (in this case 3), another formula is evaluated.

7. Repetitively print a character in a cell n number of times

You have the ZIP codes of all your customers in a list and planning to upload it to an address label generation tool. The sad part is for some reason, excel thinks zip codes are numbers, so it removed all the trailing zeros on the leftside of the zip code, thus making the 01001 as 1001. Worry not, you can use rept() the extra needed zeros. You can also custom format cell contents to display zip codes, phone numbers, ssn etc.

Example: Use zipcode & REPT("0",5-LEN(zipcode)) to convert zipcode 1001 to 01001

You can use REPT("|",n) to generate micro bar charts in your sheet. Learn more about incell charting.

8. Find out the data type of cell contents

type-formula-arguments-spreadsheetThis can be handy when you are working off the data that someone else has created. For example you may want to capitalize if the contents are text, make it 5 characters if its a number and leave it as it is otherwise for certain cell value. Type() does just that, it tells what type of data a cell is containing.

Example: Use TYPE("Chandoo") to get 2

See the various type return values in the diagram shown right.

9. Round a number to nearest even, odd number

When you are working with data that has fractions / decimals, often you may need to find the nearest integer, even or odd number to the given decimal number. Thankfully excel has the right function for this.

Example: Use ODD(63.4) to get 65

Also try even() to nearest even number and int() to round given fraction to integer just below it.

Example: Use EVEN(62.4) to get 64
Use INT(62.99) to get 62

If you need to round off a given fraction to nearest integer you can use round(62.65,0) to get 63.

10. Generate random number between any 2 given numbers

When you need a random number between any two numbers, try randbetween(), it is very useful in cases where you may need random numbers to simulate some behavior in your spreadsheets.

Example: Use RANDBETWEEN(10,100) may return 47 if you keep trying 😉

11. Convert pounds to KGs, meters to yards and tsps to table spoons

You need not ask Google if you need to convert 156 lbs to kilograms or find out how much 12 tea spoons of olive oil actually means. The hidden convert() function is really versatile and can convert many things to so many other things, except one currency to another, of course.

convert-from-lbs-to-kgs-excel-function

Example: Use CONVERT(150,"lbm","kg") to convert 150 lbs to 68.03 kgs.
Use CONVERT(12,"tsp","oz") to findout that 12 tsps is actually 2 ounces.

12. Instantly calculate loan installments using spreadsheet formula

You have your eyes on that beautiful car or beach property, but before visiting the seller / banker to findout of the monthly payment details, you would like to see how much your monthly / biweekly loan payments would be. Thankfully excel has the right formula to divide an amount to equal payment installments over given time period, the pmt() function.

pmt-calculate-loan-payments

If your loan amount is $125,000,
APR (interest rate per year) is 6%,
loan tenure is 5 years and
payments are made every month, then,

Use PMT(6%/12,5*12,-125000) which tells us that monthly payment is $ 2,416 if you keep trying 😉

Also, if you want to find out how much of each payment is going for principle and how much for the interest component, try using ppmt() and ipmt() functions. As you can guess, even though EMIs or loan installments remain constant, the amount contributed to principle and interest vary each month.

13. What is this week’s number in the current year ?

Often you may need to find out if the current week is 25th week of this year. This is not so difficult to find as it may seem. Again, excel has the right function to do just that.

Example: Use WEEKNUM(TODAY()) will get 33

14. Find out what is the date after 30 working days from today ?

Finding out a future date after 30 days from today is easy, just change the month. But what if you need to know the date thirty working days from now. Don’t use your fingers to do that counting, save them for typing a comment here and use the workday() excel funtion instead. 🙂

Example: Use WORKDAY(TODAY(),30) tells that Sep 24, 2008 is 30 working days away from today.

If you want to find out number of working days between 2 dates you can use networkdays() function, find out this and a 14 other fun things you can do with excel.

15. With so many functions, how to handle errors

Once you get to the powerful domain of excel functions to simplify your work, you are bound to have incorrect data, missing cells etc. that can make your formulas go kaput. If only there is a way to find out when a formula throws up error, you can handle it. Well, you know what, there is a way to find out if a cell has an error or a proper value. iserror() MS Excel function tells you when a cell has error.

Example: Use ISERROR(43/0) returns TRUE since 43 divided by zero throws divide by zero error.

Also try ISNA() to findout if a cell has NA error (Not applicable).

Give these functions a try, simplify your work and enjoy 🙂

Facebook
Twitter
LinkedIn

Share this tip with your colleagues

Excel and Power BI tips - Chandoo.org Newsletter

Get FREE Excel + Power BI Tips

Simple, fun and useful emails, once per week.

Learn & be awesome.

Welcome to Chandoo.org

Thank you so much for visiting. My aim is to make you awesome in Excel & Power BI. I do this by sharing videos, tips, examples and downloads on this website. There are more than 1,000 pages with all things Excel, Power BI, Dashboards & VBA here. Go ahead and spend few minutes to be AWESOME.

Read my storyFREE Excel tips book

Overall I learned a lot and I thought you did a great job of explaining how to do things. This will definitely elevate my reporting in the future.
Rebekah S
Reporting Analyst
Excel formula list - 100+ examples and howto guide for you

From simple to complex, there is a formula for every occasion. Check out the list now.

Calendars, invoices, trackers and much more. All free, fun and fantastic.

Advanced Pivot Table tricks

Power Query, Data model, DAX, Filters, Slicers, Conditional formats and beautiful charts. It's all here.

Still on fence about Power BI? In this getting started guide, learn what is Power BI, how to get it and how to create your first report from scratch.

32 Responses to “More than 3 Conditional Formats in Excel”

  1. m&a in recessionary market says:

    Dude,

    Long time... whts up , I see that urs is the only business which is posting a "Excel" lent growth in this recessionary market....

    Still alive ... so you will be able to reach me if make an attempt... 🙂

  2. James says:

    V E R Y N I C E !!!!

  3. Lincoln says:

    Hi Chandoo.

    When I use your macro in my file, I keep getting a Compile Error because the "cell" variable is not defined.

    Any suggestions?

  4. Chandoo says:

    @Lincoln: Did you have "option explicit" on?

    I am sorry, I didn't define the cell variable.

    you can add this line to the code just below the line "dim i"
    dim cell

    Let me know if you still get this error...

  5. Lincoln says:

    Ah. I've simply declared cell as a range.
    All good now

    Noob at work.

    Thanks for the article. Very helpful. 🙂

  6. Paul says:

    very, very helpful. I didn't know what "define named ranges" meant. one of my colleagues figured it out. I suggest you add the instruction "go to menu - insert/name/define and then make sure the cells at the bottom of the box change to reflect new values if you redefine the range." thanks.

  7. Jahabar says:

    Quite Intresting. If anyone could help. I am trying to do something like this but i want to define values and colours of the value in a range of cells ( Similiar) but i want the other cells to change colour when the value is same as the range defined. ANy help. I want instantaneous( Like conditional formatting) not like running macro.

  8. Chandoo says:

    @Jahabar: Welcome to PHD and thanks for the comments.

    If your source range and target range have same dimensions and source range has 4 different formats (conditional formatting limitation, unless you are using excel 2007) you can do this. If you have more than 4 formats then you may have to use VBA (and create an event like worksheet_change and monitor the range).

    Let me know if you come across a simple non-vba solution for this. 🙂

  9. serdarb says:

    very nice post...

  10. Stružák says:

    May I suggest a little modification of the code?

    Adding "Application.ScreenUpdating = False" at the beggining of the macro and "Application.ScreenUpdating = True" at the end speeds up significantly the whole procedure. As well as omitting "Operation:=xlNone, SkipBlanks:=False, Transpose:=False".

    Not a big deal in this example, but when formatting a larger range of cells, the difference is marked. I've tried to format the number 1457 of cells and the formatting was done 11 seconds faster. :-O

  11. [...] you can overcome the conditional formatting limitation using VBA macros (again, if you are new to excel, you may want to wait few weeks before plunging in to [...]

  12. Hi Chandoo

    Thanks for this macro. I have done few changes to this macro to suit my needs. I had removed the defined names data2use and conditions2use to ActiveWindow.RangeSelection.Address

    This way I can select the cells that require conditional formatting and then run the macro.

    Kind Regards,
    Vasanth

  13. asm says:

    Chandoo, I am using 2007. I noticed the conditional formatting options are different - and they have some built in funtictions for stop light displays, and other dashboard type elements. My question is this, I need to display more colors in the stop light than the standard 3. The World Health Org (WHO) has a Pandemic Flu alert level between 0-6, so i wanted to drive a sharepoint dashboard using excel based on 7 distinct levels. Suggestions?

    • Chandoo says:

      @ASM: very good idea. you can use font based symbols instead of excel traffic light icons to achieve this. the character "=" becomes a small circle when you change the font to "webdings". So you just need to insert a bunch of = signs and use conditional formatting to change the font color. If you need to combine numbers with symbols, then you can use 2 columns instead of one and format them accordingly. Let me know if you need some more help with this.

      Also, if possible, share with us your dashboard when it is ready.

  14. [...] Once we calculate values for all team members using the above formula, we can apply conditional formatting to make the heat map. In Excel 2007, this is one step. In earlier versions of excel, you need to specify 3 conditions to make the heatmap look hot enough or use a macro to get over the 3 conditional formats limitation. [...]

  15. Pitichat says:

    Chandoo,

    Why do you use the "conditions2use" since you can change the VBA and replace "conditions2use" with "data2use" and you won't have to create a zone for conditional formating equal to the data zone.

    The Data will be formated according the "formats2use". Just one thing, if you plan to have some "0" on your data zone, they will be formated like the first cell above your "formats2use" (the green cell with "Formats" inside in your exemple".
    That's why you should leave a white empty cell above the first cell of the "formats2use" zone.

    Regards,
    Pitichat

  16. Justin B says:

    Seeing as no one has posted what they actually might use something like this for here's my 2cents;
    I used the same concepts to build a heatmap of a casino gaming floor, with each populated cell representing a gaming machine (Slot Machine), some simple metric bucketing to determine different shades for the cells, user selectable colours, ability to pick a 'machine' (click on a cell) and repaint the 'floor' showing only machines with similar charateristics, select a value range and repaint the 'floor' showing only the 'machines' within the value range. Users could switch between metrics and repaint the the floor.

    It took a while to put together, but once in use was rolled out to four casinos and used for 4 years. It provided a portable (i.e. no custom software), easy to understand way to manage product from individual machine to groups / classes of product and made it very easy to see how products were performing in geographic relation to each other (something that tables & graphs can't easily do)
    Needless to say it "wowed" many people who only saw Excel as a tool for managing numbers and table based reports
    Being excel just about any user could maintain spreadsheet.

  17. Paul Chapple says:

    @ Justin B - Hey Justin, that counds AWESOME! Can I get a copy of the casino tracker, I work within a similar industry and would love to see how you've constructed it.

    Also, from using this heatmap, I think I'm getting confused. To make the map change color, I thought you had to change the DATA2USE cells, but I see it only changes if you change the vales of thew cells within the CONDITIONS2USE cells. Am I thinking this wrong?????

    Thanks all, this is REALLY making my life easier!!

  18. Rajeev says:

    Hi Dude,

    Thanks for this very useful macro. That was very helpful.

    Kepp up the good work.

    Cheers.

  19. Wagner says:

    Explanation like yours is so important to everyone that want to learn more and more in Excel. Thanks a lot. You are the man ! 🙂

  20. Lee says:

    Chandoo,

    If I wanted to replace the numbers 1-9 with text A-I, what would I need to do to the macro to make it work correctly?

    Thanks!

    • Hui... says:

      @Lee
      If the numbers are alone and not part of larger numbers >10 or with text you can simply use this formula
      =CHAR(A1+64)
      Change A1 to your cell
      Copy Down/Across as required
      Then select the new cells and copy/paste as Values over themselves.

  21. Cathy says:

    I'm trying to do a drop down list that will allow me to select a color and when I select that color it will change my cell to that color. i cannot use contion formating because I have 5 colors. Can you help me with this?
    thanks

  22. Anurag says:

    This tool was great. Can you please suggest a way to include conditions like if value in a cell lies in a range color some other cell red.

  23. CCC says:

    What do I need to change in the programing if I have a mix of numbers and letters.  Example; 5003, 2B01, W005, 1020.  I think the problem is the CInt code but I'm not sure.

  24. Bob says:

    EXCELlent - was able to use your macro with no problems.  Found that modifying it to use the DATA2USE range achived the same result as using the condition2use range.  If the two ranges were equal, your way allows the data range to have completely different values and still have the same color format at the end. 
     
    My data is a little different
    I have an irregular shaped building with students in it.
    I have a list of students assigned to the rooms with the courses they are on
    and a color code for the courses
    would there be a way of using indirect to translate the student names to color code the rooms to what courses they are on?
     

  25. [...] hi Check below link More than 3 Conditional Formats in Microsoft Excel - How to? | Chandoo.org - Learn Microsoft Excel O... [...]

  26. Graham Hartell says:

    The ability to conditional format a range of cells based on criteria in a different, but matching for size, range of cells is exactly what I've been looking for. Unfortunately the macro falls over at the line conditions (i) = CInt (cell.value). I have specified the 3 rangenames, working in excel 2003 but cannot get it to work. Any ideas. I've checked rangenames several times (0-16 being used) but no luck. Thanks

  27. Sebastian says:

    Hello you also can use this code to force ur worksheet to run with more then on condition.
    in this case the condition = case like in example if u want to format something between of the range 0 to 100 for a color
    Set I = Intersect(Target, Range("B2:B8")) <-- thatch the rage u want to work with just set it up for range of cell u want to use to format

    the second formula will show u Interior color nr index just time it and when u format the cell with a color it will show nr in the cell

    enjoy

    Private Sub Worksheet_Change(ByVal Target As Range)
    Set I = Intersect(Target, Range("B2:B8"))
    If Not I Is Nothing Then
    Select Case Target
    Case 0 To 100: NewColor = 37 ' light blue
    Case 101 To 200: NewColor = 46 ' orange
    Case 201 To 300: NewColor = 12 ' dark yellow
    Case 301 To 400: NewColor = 10 ' green
    Case 401 To 600: NewColor = 3 ' red
    Case 601 To 1000: NewColor = 20 ' lighter blue
    End Select
    Target.Interior.ColorIndex = NewColor
    End If
    End Sub

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Range("F1:F1") = Range("F1:F1").Interior.ColorIndex
    End Sub

  28. Tom says:

    Hi Chandoo,

    I tried to add the "More than 3 conditional formats for Excel" VBA macro
    to my Excel 2008 for Mac and it didn't work. Would this VBA macro work
    with Excel 2011 for Mac? Does it have to be a certain version: Student,
    Home & Office, or Standard?

    Thanks for your help.
    Tom

Leave a Reply