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.

546 comments

  1. I am trying to change the row colour based on the word 'PAID' in one cell but I cannot make it work. I have tried all that you have suggested above and am at the point of tearing my hair out! please help!

    • Hi Dee,

      Try this:

      - Select all the rows you want to color, excluding the header row, if any.
      - Go to Conditional Formatting > New rule > Use a formula to determine which cells to format.
      - Create a rule with this formula =SEARCH("PAID", $C2)>0 Remember to replace C with the name of your column that contains the word PAID. If your data starts in a row other than 2, replace 2 with the corresponding row number.

      If the formula still does not work for you, please send me your sample workbook at support@ablebits.com and we will figure out the cause.

  2. Hi Svetlana,

    Lets say there are two colums
    A B
    11 13
    12 9
    13 15
    5 55

    If the value of B is greater than that of a, the value in B should be green color else red. How do i go about doing that?
    Thanks
    J

  3. Hi,

    I have a problem with icon sets. I'm supposed to obtain green flag in cell A5 if there is any value (combination of letters and numbers) in cell F5 and red flag in the case that there is no value. I need a solution for entire column A (flags) and F (values).

    Thank you in avance.

  4. Hi,
    Can you help me in one case
    My requirement is "I just want to highligt the cell (by colour) if any changes done after a particular date.

    • Hi Marina,

      I think this can be done only via a macro. Regrettably, there are no such rules in Excel conditional formatting.

  5. I need a little help...

    I am trying to get the whole row text to change colour based on entries in column S.

    I go to conditional formatting and choose a new rule. I then pick use a formula to determine which cells to format. I then put the following formula in: =$S7="2015 callback"

    I change the format so that the text will change to purple.

    Once I have done all this some cells change but these are rows of cells where the information in column s is not "2015 callback"

    How can I manipulate this excel spreadsheet to do as I want?

    Thanks

    • Hi Laura,

      Your formula is correct. Just make sure please that you apply it to the right range of cells. For example, if row 7 is your first row with data, then you should select the range starting with A7.

      If your data starts in some other row, e.g. row 2, then you should change the formula accordingly: =$S2="2015 callback"

      I have created a similar rule for column C and it works just fine:
      Conditional formatting rule

  6. Hi ,

    I am able to achieve conditional formatting , but i also have hierarchy in my sheet , so after applying conditional formatting if i try expanding hierachy my foramtting is disappearing .

    Can you please help , I have applied applied sap styles for my hierarchy.

    How to lock the conditional formatting , i mean it should retain/remain after expanding hierarchy.

    Thanks in advance.
    Mamatha

    • Hello Mamatha,

      I am sorry I do not quite understand what exactly you mean by "hierarchy" in your sheet. Is it group subtotal or something else? Anyway, it would be easier to determine the source of the problem if I could have a look at your data. You can send me your worksheet at support@ablebits.com and I will do my best to help.

  7. Hi Svetlana,

    Could you please help me
    I try to use formula, for example

    =SEARCH("anymatch",A1)

    But catch error "We found a problem with formula... Now trying to type a formula? When the first character is an exusal (=) or minus (-) sign, Excel thinks it's a fomula"...

    And I can't save Formatting rule.

    Thanks

    • Hi Alexey,

      If you have the Russian regional settings, then you should use a semicolon instead of a comma in your formula (unless you changed this in the regional setting in control panel).

      Also, please note that if you want to find the specified text in any position in a cell, the formula reads =SEARCH("anymatch";A1)>0. If a cell's contents should start with the specified text, then use =SEARCH("anymatch";A1)=1

      If the error persists, please let the know the full formula, exactly as you are entering it in a rule. In this way, it would be easier to test and pin down the root of the problem.

  8. How would I do this if I wanted it black out a row with any text in a column cell? For example a termination date. If there is any date entered in that column it blacks that employees info.

    Thanks

    • Hi Kyle,
      You can select the entire table and create a rule with this formula (assuming that your table has headers and data starts in row 2):
      =$B2<>"" where B is your termination date column. Naturally, you choose the black fill color.

  9. I am trying to format a sheet so that when a date is entered in a row in column K the entire row is coloured yellow. However when a second date is entered in the same row in column L the row is changed to red. I know this should be simple but I am having issues getting it to work.

    • Hello Lu,

      I think you can create 2 rules with the following formulas and apply them to the entire table:
      1) =$K1<>"" - yellow fill color
      2) =AND($K1<>"", $L1<>"") - red fill color. Check the option "Stop if true" next to this rule and make sure it comes first in the rule list.

      The rules will color your spreadsheet correctly if only dates are allowed in columns K and L, because as you understand, the formulas will work if any value is entered in those 2 columns. Hopefully, this solution is suitable for your task.

  10. Hello. I am trying to use your formula but somehow I am missing something. I want to highlight the entire row in green if C1 has the text "completed". Not sure what I'm doing wrong.

    • Hi Thelma,

      You can do this by selecting the entire table where you want to color the rows and creating the conditional formatting rule with this formula:
      =$C1="completed"

      If C1 may contain some other words, e.g. "completed last week", then you can use this formula for partial match.
      =SEARCH("completed", $C1)>0

      Also, make sure you use straight quotes in the formula, they are often changed to smart quotes when copying / pasting from web-pages.

      If the rule still does not work, please send me your workbook at support@ablebits.com and I will try to help.

  11. Great tutorial. Is very helpful and saved my time lot. Thank you.

  12. Hi! I have a lot of columns in a worksheet. If there is a number greater than 0 in a cell of 1 specific column, I want the first cell of the row where the number greater than 0 is located to become highlighted. Is that possible?

    It is not highlighting the entire cell but a cell in that row. Thanks in advance!

    • Hi,

      Yes, you can do this in the following way:
      - Select only the column where you want to color cells (except for the header row, if any). Suppose this is column A.
      - Create a conditional formating rule with this formula: =$C2>0 where C is your specific column. If your table does not have headers and your data starts in row 1, then use =$C1>0

      Since we use a mixed reference in the formula (absolute column and relative row), the formula will highlight the first cell (A) of each row where the value in column C in greater than 0.

  13. Hello, I have an easy one. I need to highlight today's date row and then the next row as well (not just the next date). I have multiple rows for one date box.
    ex: 1/1/14 row a highlight this row
    row b highlight this row
    1/2/14 row a
    row b

    I have today's date row highlighted, but now the row b. The Row b first box covers and row a first box is the same box expanded over the two rows.

    • Hi Josh,

      You just need to create one more rule for the same range with this formula =TODAY()=$C1

  14. How do I get an icon set to plot on a graph based on data results from a survey?

    • Sorry, I do not exactly understand what you are trying to achieve. Please send us (alexander.frolov@ablebits.com) a screenshot of the desired result and your sample data and we will try to figure out a way.

  15. okay i got it... Its in the font tab while creating the rule.

  16. Hi,

    If i want to change the font color based on cell color what should i do

  17. Hi Svetlana,

    I got it to work. Thank you very much

  18. Hi Svetlana,

    I still can't seem to get it right. Maybe I should explain better. I have text in column C and then have values in some of the other columns. my text in column C reads "PC AMOUNT" and when I type this in I want the specific row from column A to Column G to turn a specific colour.

    When I use the formula you gave, and I type in "PC AMOUNT" where "text" is, it gives me an error. " you may not use reference operators "

    Can you perhaps assist.

    Thank you

    • Hi,

      I have tried to create a rule with this formula =$C2="PC AMOUNT" and it worked fine on my test data. Just make sure that you use the straight quotes in Excel, because this blog converts them to smart quotes and this does cause the error you mentioned when copying/pasting formulas directly.

  19. Hi, I am struggling with the following:

    I have a certain text in Column C and want that certain row from A to G to be a specific colour when the text is written in column C. can you please help me?

    thank you

    • Hi,

      If you want to highlight the row with exact match in Column C, then select your table and create a rule with this formula:
      =$C2="text" (assuming that your table has headers and row 2 is your 1st row with data)

      If you want to highlight the row with partial match, i.e. Column C may contain a certain text preceded or followed by some other text, then use this formula:
      =SEARCH("text", $C2)>0

  20. Hi Svetlana
    I used VLOOKUP function to fetch the desired row and show it elsewhere and it works.
    I hope can find a solution for my 2nd Q. I think i should use some codes in excel VBA. Unfortunately I have no idea about that.

    • Hi Morteza,

      To my best knowledge, it is not possible to display a certain row as a pop-up in Excel, at least I do not know any means to achieve this. I am really sorry.

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 :)