I have an array of data that I want to conditionally format per row.
The result I need:
(highest value in each row marked in red)
Not like this:
(highest values overall marked in red - notice e.g. the values for row "C")
I have managed this by writing a simple macro, which basically copies conditional formatting for each row (if you are interested, I found this here: Copy conditional formatting from one cell to another using VBA?)
Now, I was wondering, would I be able to achieve the same but just somehow changing formula in conditional formating and/or "Applies to" range.
As I said, the problem itself is solved, but I'm just curious.
yes you change the formula and/or the range for a cfr in vba.
Related
I am struggling to create a formula for a table with conditional formatting where I compare a cell in one column (Items) to another cell in a separate column (Need items 3 or higher). I don't want to highlight the entire row, but I do need to format the cell so it changes.
Mock Image of what is needed:
I'm currently trying to use =OR($A$2:$A$78="Item 1",$A$2:$A$78="Item 2")
What is wrong with the above condition?
In conditional formatting you no need to mention full range of cells. Rather use first cell. Excel will automatically check for other cells based on applied cells. Try this function in custom CF rule-
=OR($A2="Item 1",$A2="Item 2")
I have the following function in A15
=FILTER(FILTER(AllStaffProjectAllocationTbl,AllStaffProjectAllocationTbl[Project Name]=A2), {1,1,1,0,1,0,0,1,0,0,1})
And the conditional formatting Rule
=MOD(ROW(),2)=0
Applied to
=$A$15:$F$22
as set out in the image
Is there a way to make the conditional formatting continue to work as the data gets bigger and only if there's something in the row?
Used the following formula to check if there is no entry in the first column to determine whether to use the conditional formatting to set the row colour, ultimtely stopping after the last row with valid data in it.
=AND($A15<>"",MOD(ROW(),2)=0)
I'm trying to create a rule that formats a row so that it has red background color if the content of another row is "x". Unfortunately, the header and empty cells above the table will be included if I simply select =$H:$H="x" as my condition for formatting. I want something like: =$H$6:$H$(INFINITY). Is this possible?
If you want to apply the conditional formatting starting from Row6, while selecting the range for applying the conditional formatting, make sure C6 should be the first cell in the selection i.e. it should be the active cell in the selection and then make a new rule for conditional formatting using the formula given below.
=$H6="x"
Also if you are not sure how far you need to apply this conditional formatting down the rows, would be better if you format your data as an Excel Table, so when the data grows withing the table down the rows, the conditional formatting will also be carried to the new rows added in the table.
Having a conditional formatting for a unused range on the sheet increases the file size as all the rows contain the conditional formatting and the formula in the background.
You can just use =$H$6:$H$1048576 or =$H$6:$H$65536 while applying conditional formatting. A simplest way of doing this.
Your formula does lag a lot as you are searching through so many rows down. THe best thing you can do is try to limit the amount of rows to search. I.e. if you know your dataset only contains max 5000 rows, set the limit to that H6:H5000. This will help.
If the rows change a lot, the best way would be to make it dynamic. I.e. make a name range for the range you want to validate and in the name manager, change the range to include offset. This will help you set the range to be what you have data in. Note: You need to know how many rows (i.e. use counta) which you will need to figure out if there are blanks at any point. Otherwise you do the counta on a column where you have no blanks.
Hope this makes sense and easy for you.
I am currently trying to apply conditional formatting to certain rows which contain numbers in percentage (e.g. F11 to N11; F14 to N14; F17 to N17 and so on). These are also the only rows in the worksheet that have numbers in percentage. Would like to know what the fastest way to go about doing this is.
Should I:
(i) apply conditional formatting to the whole worksheet to numbers in percentage (if possible) or
(ii) apply conditional formatting to each individual row which is extremely time-consuming?
Appreciate if anyone can help.
Thanks in advance! :)
If your data in the percentage rows is also formatted as percentage, you can use the =CELL("format",[reference]) function, that returns "P0" or "P2" for percentage formatting.
Use a helper column (which you can hide if you want) to check the formatting of the first/last cell in the row, and then set conditional formatting based on the column:
After you create the column, you set a conditional formatting rule on the the upper-left cell in the range based on the formula: =[top cell in helper column]="P0". Keep the column fixed with a $ but not the row, as in the screenshot below, so you can drag the formatting to all the range with correct reference to the helper column.
Next step is to drag this cell to all the range, choosing the "formatting only" option:
Finally, you have to format again all rows that contains percentage values to percentage formatting.
However, if the place of the percentage rows is fixed, you don't need that CELL() function, just write in the helper column something like p or 1 for the rows to format.
(I have also tried to plug the formula directly to the formatting condition, but it doesn't work well all the time)
Tell me if it solved your problem ;)
I'm trying to apply conditional formatting in Excel on a range of cells, based on the adjacent cell's value, to achieve something like this:
The goal is to highlight values in Column B (Actual Expense) red if the value is greater than it's adjacent value in column C (Expected Expense). I've followed a number of tutorials that said to apply conditional formatting by selecting Conditional Formatting>New Rules>Use a Formula to Determine Which Cells to Format then applying a rule =$B4>$C4 which would format the 'Actual' cell red if it were greater than the 'Expected' cell. This works great for one cell, but not so well when I attempt to apply this to a range of cells. I've used the format painter as well as editing the rule to be applied over a range of cells (i.e. $B$2:$B$5) as shown below but it only bases the formatting on the initial formula (if B4 is greater than C4) and everything undesirably turns red.
I'd rather not make individual rules for every row. Is there a way to consolidate this into one rule?
You need to take out the $ signs before the row numbers in the formula....and the row number used in the formula should correspond to the first row of data, so if you are applying this to the ("applies to") range $B$2:$B$5 it must be this formula
=$B2>$C2
by using that "relative" version rather than your "absolute" one Excel (implicitly) adjusts the formula for each row in the range, as if you were copying the formula down
I don't know if maybe it's a difference in Excel version but this question is 6 years old and the accepted answer didn't help me so this is what I figured out:
Under Conditional Formatting > Manage Rules:
Make a new rule with "Use a formula to determine which cells to format"
Make your rule, but put a dollar sign only in front of the letter: $A2<$B2
Under "Applies to", Manually select the second column (It would not work for me if I changed the value in the box, it just kept snapping back to what was already there), so it looks like $B$2:$B$100 (assuming you have 100 rows)
This worked for me in Excel 2016.