How to change the row color based on a cell value in Excel

Learn how to quickly highlight the entire row based on a single cell's value in Excel. Tips and formula examples for number and text values.

Last week we discussed how to change the background color of a cell based on its value. In this article you will learn how to highlight entire rows in Excel based on a value of one cell, and also find a few tips and formula examples that will work with numerical and text cell values.

How to change a row color based on a number in a single cell

Say, you have a table of your company orders like this: Source data - a table of the company's orders

You may want to shade the rows in different colors based on the cell value in the Qty. column to see the most important orders at a glance. This can be easily done using Excel Conditional Formatting.

  1. Start with selecting the cells the background color of which you want to change.
  2. Create a new formatting rule by clicking Conditional Formatting > New Rule… on the Home tab. On the Home tab, click Conditional Formatting > New Rule…
  3. In the "New Formatting Rule" dialog window that opens, choose the option "Use a formula to determine which cells to format" and enter the following formula in the "Format values where this formula is true" field to highlight orders with Qty. larger than 4:

    =$C2>4 Open the 'New Formatting Rule' dialog and enter the needed formula.

    And naturally, you can use the less than (<) and equal to (=) operators to find and highlight rows that have Qty. smaller than 4 or equal to 4:

    =$C2<4

    =$C2=4

    Also, pay attention to the dollar sign $ before the cell's address - it is needed to keep the column letter the same when the formula gets copied across the row. Actually, it is what does the trick and applies formatting to the whole row based on a value in a given cell.

  4. Click the "Format…" button and switch to Fill tab to choose the background color. If the default colors do not suffice, click the "More Colors…" button to pick the one to your liking, and then click OK twice. Click the 'More Colors…' button to choose the color to your liking.

    You can also use any other formatting options, such as the font color or cells border on the other tabs of the Format Cells dialog.

  5. The preview of your formatting rule will look similar to this: The preview of your formatting rule
  6. If this is how you wanted it and you are happy with the color, click OK to see your new formatting in effect.

    Now, if the value in the Qty. column is greater than 4, the entire rows in your Excel table will turn blue. Highlight entire rows based on a cell value.

As you can see, changing the row's color based on a number in a single cell is pretty easy in Excel. Further on, you will find more formula examples and a couple of tips for more complex scenarios.

How to apply several rules with the priority you need

In the previous example, you may want to highlight the rows with different values in the Qty. column in different colors. For example, you can add a rule to shade the rows with quantity 10 or greater. In this case, use this formula:

=$C2>9

After your second formatting rule is created, set the rules priority so that both of your rules will work.

  1. On the Home tab, in the Styles group, click Conditional Formatting > Manage Rules… .
  2. Choose "This worksheet" in the "Show formatting rules for" field. If you want to manage the rules that apply to your current selection only, choose "Current Selection".
  3. Select the formatting rule you want to be applied first and move it to the top of the list using the arrows. The result should resemble this: Use the up and down arrows to set the rules' priority.

    Click the OK button and the corresponding rows will immediately change their background color based on the cell values that you specified in both formulas. The entire rows colored based on two conditional formatting rules

How to change a row color based on a text value in a cell

In our sample table, to make follow-up on orders easier, you can shade the rows based on the values in the Delivery column, so that:

  • If an order is "Due in X Days", the background color of such rows will turn orange;
  • If an item is "Delivered", the entire row will be colored in green;
  • If an order is "Past Due", the row will turn red.

Naturally, the row color will change if the order status gets updated.

While the formula from our first example could work for "Delivered" and "Past Due"(=$E2="Delivered" and =$E2="Past Due"), the task sounds a bit trickier for "Due in…" orders. As you see, different orders are due in 1, 3, 5 or more days and the above formula won't work because it is purposed for exact match.

In this case, you'd better use the SEARCH function that works for the partial match as well:

=SEARCH("Due in", $E2)>0

In the formula, E2 is the address of the cell that you want to base your formatting on, the dollar sign ($) is used to lock the column coordinate, and >0 means that the formatting will be applied if the specified text ("Due in" in our case) is found in any position in the cell.

Create three such rules following the steps from the first example, and you will have the below table, as the result: The rows' color is changed based on a text value in a cell.

Highlight row if cell starts with specific text

Using >0 in the above formula means that the row will be colored no matter where the specified text is located in the key cell. For example, the Delivery column (F) may contain the text "Urgent, Due in 6 Hours", and this row will be colored as well.

To change the row color when the key cell starts with a particular value, use =1 in the formula, e.g.:

=SEARCH("Due in", $E2)=1

in this case, the row will only be highlighted if the specified text is found in the first position in the cell.

For this conditional formatting rule to work correctly, make sure there are no leading spaces in the key column, otherwise you might rack your brain trying to figure out why the formula does not work :) You can use this free tool to find and remove leading and trailing spaces in your worksheets - Trim Spaces tool for Excel.

How to change a cell's color based on a value of another cell

In fact, this is simply a variation of changing the background color of a row case. But instead of the whole table, you select a column or a range where you want to highlight rows and use the formulas described above.

For example, we could create three such rules to shade only the cells in the "Order number" column based on another cell value (values in the Delivery column). Changing a cell's color based on a value in another cell

Highlight rows based on several conditions

If you want to shade the rows in the same color based on several values, then instead of creating several formatting rules you can use the OR or AND functions to set several conditions.

For example, we can color the orders due in 1 and 3 days in the reddish color, and those that are due in 5 and 7 days in the yellow color. The formulas are as follow:

=OR($F2="Due in 1 Days", $F2="Due in 3 Days")

=OR($F2="Due in 5 Days", $F2="Due in 7 Days") Use the =OR formula to change a row's color based on several conditions.

And you can use the AND function, say, to change the background color of rows with Qty. equal to or greater than 5 and equal to or less than 10:

=AND($D2>=5, $D2<=10) An example of using the =AND formula

Naturally, you are not limited to using only 2 conditions in such formulas, you are free to use as many as you need. For example:

=OR($F2="Due in 1 Days", $F2="Due in 3 Days", $F2="Due in 5 Days")

Tip: Now that you know how to color cells to differentiate between various types of values, you may want to know how many cells are highlighted in a certain color and calculate the sum of values in those cells. The good news is that you can automate this too and you will find the solution in this article: How to count, sum and filter cells by color in Excel.

These are only a few of many possible ways to zebra stripe your Excel worksheets based on a cell's value that will respond to change of data in that cell. If you need something different for your data set, drop us a comment and we will try to figure this out.

534 comments

  1. Hi,
    I want to colour my bar chart "bars" based on the text written inside the bar chart "bars". ( ie if "A" is written in first bar- the bar colour should turn to red, if "B", then blue and so on), the text in the bar is dynamic and changes with the data.
    Can you please advise.
    Thanks
    Sam

      • Thanks Fedor.
        Actually I want the different "bars" within Bar chart to change colour automatically based on "Text" written within the "Bars".
        ie if the text entered in the "Bar" is North, the "Bar" colour should be filled with "yellow" colour, and so on.
        Thanks again.

  2. Hi,

    1-3,7-9,13-15 till last row how can change "Bold" in VBA
    4-6,10-12,16-18 till last row how can change "Italic" in VBA

    Please give me suggestions.

  3. Hi, I am trying to conditionally format cells in one column based on overdue dates in another column. Specifically, I want cells in column A to turn red if the date in column P (corresponding row) is past due. When I set my conditional formatting for column A, this is the formula I have inputted: =$P2=TODAY . I also want to set up a second rule for due dates 90 days out, where the corresponding row in A turns blue. This is the formula I have inputted for this conditional format: =$P2<TODAY+90 . Neither format is working however, so I know I'm doing something wrong. Can you point me in the right direction? Thank you!

  4. Hi There, Can someone please help me with a conditional formatting to change a whole line colour based upon whether its Saturday or Sunday.

    I am using =E12+1 where E12 is a date 01/01/16 to have my cell look like this Saturday, 2 January 2016

    I had supposed using =SEARCH("Saturday",$E13)>0 to change the whole line but obviously the formula for dating does not contain "Saturday"

  5. You have saved Preston. Thank you.

  6. Hello All,

    i am facing one issue:

    suppose in a row, there is one box with green color.

    what formula should i use for this to know that in row we have different color?

  7. Hi,
    I am trying to conditionally format a row which is reference another cell.
    EX - IF A1 is some number like(1/2/3/4) & B1 is YES/NO.
    if in A1(1)=B1(No) then A1 become condition by color & if Yes another color.
    Help

  8. What formula would I use, if I want the text of a row to be red if one particular cell is blank and another is not blank in said row.

  9. Hi Svetlana,
    I am trying to conditionally format a row of numbers based on a manually entered number in cell c4 my data is from cell A11 to I39 for ex if I enter a random number between 10 & 24 in cell C4 I would like the corresponding row to be a different color, I have managed to do this but it will only format the FIXED numbers from A11 to A39. Thanks in advance for any help you can give me its driving me crazy..

  10. I'm trying to make a cell match the color of another cell. I want A2 to match K2 (which is a date) the same color. K2 is formatted to change to red when it is 90 days out from today.

  11. Hi Svetlana,

    Im having some problem. Let say my table is as follow:

    A B C D E F G
    1 2 3 4 5
    6 7 8 9 10

    I want to change the cell's colour based on the other cell value, for example:

    A B
    1 DONE
    2 NOT
    3 DONE
    4 DONE
    5 DONE

    If the word in column B is 'done", the cell 1 in the upper table will turn blue, let say. How to do it? The sequence of the numbers in upper table also not in order. It involve a lot of numbers and im not able to do it cell by cell. Please help me..

  12. Hi Svetlana,

    thank ypu very much for your post. Really useful. I just have the problem that saving and reopening the file,it doesn't keep the conditional formatting set. Do you know whay it might be?

    Thank you very much in advance,
    Valeria

  13. I am trying out this example on my Excel 2013 and I get an error that "we found a problem with this formula.."
    I have defined a rule with the formula below:
    =OR($D2="Due in 1 days",$D2="Due in 7 days")

    • Hello Boniface,

      Most likely the problem is in a different List Separator. This formula is written with a comma, which is the default List Separator in North America and some other countries. In European countries the comma is reserved as the Decimal Symbol and the List Separator is set to semicolon. So, try replacing "," with ";" like this:

      =OR($D2="Due in 1 days";$D2="Due in 7 days")

  14. helo guys,

    I need a help on excel where i have 500 id numbers in duplicates. like

    Id subject grade
    1001 xxxx A
    1001 YYYY A
    1002 XXXX B
    1002 YYYY EX
    1001 ZZZZ B

    i have data like above. Here what I need is, want to highlight id column with different colors. Id should get same color even if i have duplicate data in workbook. Please help me out on this. Thanks in advance.

  15. helo guys,

    I need a help on excel where i have 500 id numbers in duplicates. like

    Id subject grade
    1001 xxxx

  16. Hi,
    I’m not sure if this is still open for questions but if so, I would really appreciate your help.
    In column A I have a list of sites. In column B I have a set of random dates which highlight the day in which these sites had been uploaded to the excel sheet. In columns C,D and E I have names (E.G C; John, D; David, E; Sam). These last three columns also have drop down menus with an option which needs to be selected for each site row. If any individual has not selected an option from the list when Column B had passed 5 days I need each of the name columns to turn orange. If the date passes 10 days I need the name cells for that row to turn RED. Is this possible with conditional formatting? I have seen this done previously but the sheet had been deleted so I am unable to copy formula. Can you please help?
    Thanks!

    • Hello Hannah,

      Can you please send me your sample workbook at support@ablebits.com and an example of the result you want to get?

  17. Hi Svetlana,
    I was looking for a way to visually separate rows by category with color, I have 1-3 rows in a row that can be the same category. As if I could control the banded color of a table based on a variable - So the best I came up with was identifying whether the variable was new or the same as the last row, so there is one variable that just says "New" or "Same". I am trying to get all the "New" rows one color and all the "Same" another color. I am having trouble with the formula to highlight the whole row based on cell text, it only wants to highlight the cell or it highlights every row. The formulas are =$E$2="New" and =$E$2="Same" applied it to the whole range but it doesn't work. Am I missing a step? Or is there a better way to visually separate by a variable for viewing purposes?

    Thanks!

  18. Hi Dear,

    Is there any way to highlight number of cells based on entering a number on first cell for instance; i enter number 10 and automatically it highlights 10 cells ahead?

    Thanking you in advance

  19. Hi Svetlana,

    I have an excel file which is shared between 4 people and conditional formatting doesnt work on a share file.
    What would you recommend?
    I want to change the color of a row from E4:G4 if the text value of Cell I4 is "Done".

    Thanks,

  20. My Online Teacher :)

  21. I am trying to fill an entire row a different colour depending on date(month).

    I have set up conditional formatting to give different colours in the cell containing the date using cell value, but I cannot make this stretch across the row, every formula I have tried does not work.

    How can I get around this?

  22. I have entered a date and time in a cell and I want the cell next to it to turn green in exactly 24 hrs. How do I do this?

    • Hi Reuben,

      Assuming you have a date and time in cell A1, you can create a rule based on the following formula:
      =(NOW()-$A1)*24>=24

  23. I want to highlight a CELL based on number of times its values changed.

    e.g.
    1)IF the cell value is changed '2nd TIME' it should highlight "Green".

    2)IF the cell value changes '3rd TIME', it should highlight "BLUE" and so on...

  24. Hi admin

    how to highlighted condtional formatting color row A number above row B also colour not updated 0.

    Regards

    SP

  25. I would like to be able to change a row to a colour if the cell G2 contains "A" to yellow "B" to green and "C" to red. I would like to continue this in all rows of column G. My issue is I can do this for row 2 but when I try to do it for the column G when I put text in 'G2' it changes all other rows.
    Will I have to create a macro?

    • Hi Karl,

      A macro is not needed in this case, the task can be handled by a conditional formatting rule. The key point is to use proper cell references - absolute column and relative row: =$G2="A"

      Also, make sure you apply the rule to a range beginning with the same row as referenced in the formula, row 2 in your case.

  26. Hi admin

    how to highlighted condtional formatting color col A number above col B also colour not updated 0.

    Regards

    SP

  27. Hi Admin

    What i want is really very simple but im having trouble.
    i have 6 colums 2A to 2F i want all the background colours red there will be a number in colum 2A and 3A and when i put a number in colum 4A i want all colums 2A to 2F to change to gree ?

    Regards
    justin

  28. Hi,

    I am having trouble changing cell colours for some reason. I have used the formulas as suggested but the formula will not work. I'm not sure what I am doing wrong! I want to change the colour of the cells in the L column if they are blank and if the cells in the W column have been entered as 'No'. I have entered the formula as =AND(L2="",W2="No"). Could you tell me what I am doing wrong as I cannot work it out?

    Many thanks

    • Hi Farhat,

      The formula is correct. Just make sure the rule applies to column L beginning with cell L2. Also, you'd better fix the columns by using the $ sign:
      =AND($L2="",$W2="No")

  29. Hey Admin. Hoping you could help me out here.
    In my excel sheet i have columns for start date, number of months and end date. If the number of months is 7, 2 columns, i.e column D and E must get highlighted. If number of months is 3, columns D,E and F must be highlighted. How can i do this. Please help.

  30. I have a data with Columns; Entry No, Date, Activity, Target Date, and Completion Status.
    I want My rows color to change based on Target Date and Completion Status.
    if Target date is within 7 days row colour must be Orange.
    if Target date is due row colour must be red.
    If Completion status is completed row colour must be Green
    pls hlp me

  31. Thanks for answering all of our questions!

    I have a problem with using this formula.

    I have 9 columns A to J

    i'd like to have a row changed to a specific colour depending on the contents of the cell in column C

    C has two states, 'INSTALLED' and 'REMOVED'

    essentially if the cell reads 'REMOVED' then i want that row to be colored yellow. If it reads 'INSTALLED' i want it colored green.

    It seemed like you already covered this in the article but your process did not work for me. I even tried adding new test rows and changing the value of the cell in column C but there was no change.

    The formulae i used were "=$C="REMOVED" and "=$C=INSTALLED"

    Thanks for your help!

    • Hi Bob,

      You need to refer to your top-most cell in the formula. For example, if your data begins in row 2, the formulas are as follows:

      =$C2="REMOVED"
      =$C2="INSTALLED"

      • after trying it again, i realised that i had selected the cells using the column headers rather than selecting the cells by draggin a selection or shift-clicking.

        All seems to work now!

        Thanks!!!

  32. Thanks for your help Svetlana, that is almost perfest but I want the formula to work whatever date I put in column M, is it possible? :-)

    • Julie,

      Of course, it's possible. In this case, the formula is even simpler :)

      To color a row if a cell in column M is not empty (contains any value - number, date or text):
      =$M2<>""

      To color a row if a cell in column M is a number or date (dates are stored as serial numbers in Excel), but do not color a row if column M contains a text value:
      =ISNUMBER($M2)

  33. your blog has helped me so much but I just need a bit more help, I am using the following formula to shade a whole row green once the word 'completed' has been added to cell M but I would really like this to be a 'date' rather than the word 'completed', I have tried a few things but I am a beginner on excel. The formula I am using is =$M2="COMPLETED" is there an easy way to change this to a date? thanks in advance

  34. I column that contain numbers ranging from -001 to -374.

    I want to have a cell that if I type in a matching number to any of the -001 to -374, then the row containing the matched number will be highlighted.
    Please can you help.

  35. Hello Svetlana,
    I want to get the next cell in my row to have a specific color highlight depending on my current cell having a date or number or text. I want a different color for each type of entry. I am a novice and have researched much. I have found the best info here but i still cant figure it out.
    Any guidance would be appreciated.
    Thank you,

  36. I would like the entire row to be highlighted based on the contents of column I ---- either that there is NO value (rather than ANYTHING) if that's possible.... or if there is a "," in the cell text.
    Thank you so much for any help that you can provide.

    • Let me try that again.
      I've tried a few of the combinations posted, but it only ever changes the background for the I column, not the entire row. Also, I would like this specific formatting to begin with Cell I2, rather than I1.
      Thanks again.

    • Hi Hollywil,

      Before creating a rule, you need to select the entire rows you want to highlight for a rule to get applied to several columns rather than a single column.

      Also, when creating a rule, make sure that you select a range of cells beginning with row 2. You can use the following formulas in your rules:

      Highlight rows with "NO" value in column I:
      =$I2="NO"

      If there is a comma in column I:
      =SEARCH(",", $I2)

  37. How about highlighting a block of cells based on the value changes in just a single column.

    For instance, say I have columns A and B. Down column A I have numbers like 1,1,1,2,2,3,3,3,3,4,4,4,5,5,5, and whats down column B is non-consequential for this example. Every time column A changes value (from 1 to 2, 2 to 3, and so on), I want to highlight the cells in both column A and B with a different color. The color can simply rotate between two colors.

    Say it was setup like this (x is just some other information)

    A B
    1 x
    1 x
    2 x
    2 x
    2 x
    3 x
    3 x

    I want A1,A2,B1,B2 to be one color, then A3,A4,A5,B3,B4,B5 to be another, and so on.

    Thanks for the help in advance.

  38. Thank you Svetlana, this article was very helpful.

  39. I have a task I perform on a date and I enter the date into Cell A1. What I want to do is have the cell B1 turn to red when I am 7 days past the date I entered into Cell A1. Can you tell me how to do this?

    • Hi Bruce,

      Try creating a rule with this formula: =TODAY()-$A1>7

  40. I need to change the colour of the font in the row that the date is three years from today (All expired items). When I use conditional formatting the column the date only changes please help. Regds, Omar

  41. thank you so much Svetlana Cheusheva

  42. Hi Svetlana,

    I am trying to automatic highlight the high value in each row.

    For Example threre are some figure in each coloum i.e. :-

    ColumnA ColumnB ColumnC ColumnD
    1. p 10 15 12
    2. n 15 12 14
    3. q 10 04 20
    4. r 15 20 25

    now, which condition i used that the autmatic highlight the high vlue in each row.

    Regards,
    Prashant Johari

  43. Hi Svetlana

    I am trying to figure how to format my worksheet so that it identifys by changing colour if a number is less than the number it was previously e.g. something weighing 12kg then in the next coloum, ideally they will be 13. But if it ends up weighing less, e.g. 11, then it would highlight this for the entire worksheet not just for the one row/cell.
    Are you able to help me? I am tearing my hair out!
    Thanks
    Sophie

  44. I need a formula that will make cell "A3" turn Green when cells "E3 through L3" contain the letter "Y"

    and also

    "A3" turn Red when cells "E3 through L3" contain the letter "N"

    • Hi Chris,

      You just need to put all these conditions in the AND formula, like this:

      =AND($E3="Y", $F3="Y", G3="Y", etc.)

  45. Hi Svetlana Cheusheva,
    I wanted to send reminders to the stakeholders while exceeding 3 days from last reminder date. I have used the below formatting but I could not highlight the entire rows and also want to ignore weekends (Saturday and Sunday).
    Formula used, E.g.,
    =$D$2-TODAY()>=3
    Thank you.

    • Hi Bharath,

      First off, please check whether your rule applies to the entire rows you want to highlight (without the column headers).

      Assuming that the last reminder date is in column D, you need to change your formula as follows:

      =TODAY()-$D2>=3

      Please pay attention that $D2 should be a mixed cell reference (absolute column - with $ and relative row - without $).

      Finally, create one more rule to exclude Saturday and Sunday (do not choose any fill color), move it to the top of the rules list and check "Stop if true" next to it:

      =WEEKDAY(D$2,2)>5

  46. Sir,
    My problem is when I put formula in one the background and font color should change accordingly.
    For example:
    A B C D E F G H I
    1 BUY SELL PROFIT
    RATE RATE /LOSS
    2
    3 2500 3000 500 I WANT THIS CELL BACKGROUND GREEN
    4
    5 6000 5500 -500 I WANT THIS CELL BACKGROUND RED

  47. hi just asking please help how to change the color automatically if i input # 4 it will change in other sheet in the entire row it will change color blue.

    for ex. 1 pink
    2 yellow
    3 green
    4 blue

  48. How to change a row color based on a number in a single cell worked great. Except I also have your formula to count cells by color and the colors for the conditional formatted cells shows as "no color" in the cells formatting.

  49. Hi,

    There is any data in xls but somewhere we are correcting the numbers so i want to highlight such raws where we are doing the correction.

    Can you please help me with this?

    Thanks
    Hardik

  50. Hi Experts,

    I have copy pasted data from some website and pasted the content in a cell , say "HELLOWORLD". HELLO is in blue and WORlD is in black.I need to put a ',' after the blue font. so it looks "HELLO,WORLD"
    Can i do it? if yes how ?

    Note- for limited number of records i could have done it manually but i have lakhs of records and i cannot do it all alone manually.
    I want to automate it with some code.

    Please help

    Thanks in advance
    SSK

Post a comment



Thank you for your comment!
When posting a question, please be very clear and concise. This will help us provide a quick and relevant solution to
your query. We cannot guarantee that we will answer every question, but we'll do our best :)