I'm trying to optimize my conditional formatting in google sheets to improve my overall spreadsheet performance. One thing I've read to improve spreadsheet performance in general, is to use closed ranges (ex $A$3:$A$450) rather than ranges (ex $A:$A) to reduce the number of calculations on empty cells.
I've applied conditional formatting to one sheet based off the ever changing data set of another sheet. Therefore to use an accurate closed range, it would need to be dynamic. I've used Ben Collin's technique for creating dynamic named ranges throughout my sheets but it doesn't seem to work for conditional formatting.
The problem is the same function, indirect("[named_range]"), does 2 different things depending on where it's used:
Conditional Formatting requires it to call a regular named range
When used in a formula in a spreadsheet, it allows you to call dynamic named ranges
So naturally I figured maybe I just need to nest it: indirect(indirect("[dynamic named range]")) Unfortunately that doesn't work either. :)
Is there a trick to using dynamic named ranges with conditional formatting? Is it even possible?
Related
I'm looking to validate 2 numbers with conditional formatting.
I need to resolve how to vlookup "x" value within at least 3 different ranges in a different sheet (Validation) but on the same spreadsheet.
I came out with this but it not working as intended.
May you please provide me a workaround or another solution?
VLOOKUP(F5,INDIRECT("{INDIRECT("Validation!B17:Q19"); INDIRECT("Validation!B54:Q56");INDIRECT("Validation!B91:Q93")}"),2,FALSE)
Since you plan to use it as a conditional formatting formula, here's one workaround that you may use.
1st, Create a Helper sheet which will contain the combined range of data that you will use in your vlookup(). You can just hide your Helper sheet if you want.
2nd, Use indirect() using the range in your Helper sheet.
Sample Conditional Formatting Formula:
=D1=Vlookup($A$1,Indirect("Helper!A1:B"),2,false)
Output:
I've tried searching low, high, and deep within the crevices of the internet to find a possible solution to this, but have had no luck. My main goal is to highlight individual cells based on a couple criteria. I have a google sheet that tracks jobs based on input from employees. My conditions are:
Date must be before today
Cell must be empty (no input from that day)
Only the cell that is empty should be highlighted
https://docs.google.com/spreadsheets/d/10W9O55QQ31acOj5SyKcE0CXx8S78MZQtY-sRaIKgB7c/edit?usp=sharing
The goal of this is to make cells that did not receive any data stand out. The current formula I have is
=AND(ARRAYFORMULA(ISBLANK($B3:$D3)), ARRAYFORMULA(ISBLANK($I3:$K3)), $A3<TODAY())
But this is only highlighting the entire row, and when a cell in that row is filled, it no longer highlights that row. The yellow row is today's date. Any help in solving this is greatly appreciated!
It's not 100% clear what should be happening with the merged Column E:H. But from the limited data and assigned colors I see in your sheet, try swapping out your current "pink" custom CF rule with this one:
=AND($A3<TODAY(), OR(AND(COLUMN(B3)<=4, B3=""), AND(COLUMN(B3)>=9, B3=""), AND(COLUMN(B3)>4, COLUMN(B3)<9, OR(B3<>"", JOIN("",$B3:$K3)=""))))
You need to set a conditional format rule for each column
I believe here are the conditional format rules you need:
Apply To Range
Formula
A3:A
=AND(OR(ARRAYFORMULA(ISBLANK($B3:$D3)), ARRAYFORMULA(ISBLANK($I3:$K3))), $A3<TODAY()) *Note the OR
B3:B
=AND($A3<TODAY(), ISBLANK($B3))
C3:C
=AND($C3<TODAY(), ISBLANK($C3))
D3:D
=AND($D3<TODAY(), ISBLANK($D3))
I3:I
=AND($I3<TODAY(), ISBLANK($I3))
J3:J
=AND($J3<TODAY(), ISBLANK($J3))
K3:K
=AND($K3<TODAY(), ISBLANK($K3))
The key concept here is that within one rule you cannot specify specific ranges to apply the rule to. Part of the definition of the rule is the range that it applies to. You can have rules that take precedence over certain ranges, but you cannot have two ranges in one rule. You can test many ranges in one rule, but the formatting applies to the whole range the rule is applied to.
Make sure you have deleted previous rules before applying these to make sure they don't take precedence
Reference
Conditional Formatting
I have 6 columns and ~200 rows of numbers on one Google Sheet. Then on the other is also 6 columns but only 3 rows. I am trying to use conditional formatting to highlight the numbers in the larger group if they match any of the ones one my other sheet of data.
I've gotten it for matching one number, but having it look at a whole set is proving to be more difficult.
try on range A2:E:
=(REGEXMATCH(TO_TEXT(A2), "^"&TEXTJOIN("$|^", 1, $G$2:$K$5)&"$"))*(A1<>"")
Conditional formatting Apply to range A:A use the following custom formula:
=or(A1=$G$1,A1=$G$2,A1=$G$3)
This will be the easiest way to do it, of course if you have a lot of matches you want to make then it will become more and more difficult without a helper column... Your example only has 3 matches per column so this will work but if you have hundreds of matches you will need to basically make a column looking up if there is a match and conditional formatting based on that (it will be a lot easier and cleaner).
I'm using conditional formatting in a google sheet.
I can apply this format to a specific column without issue.
But if I want to have the same format on all columns with each column being independent of the other, I don't know what range I should use.
When I set a range that takes applies it to all the columns, the conditional formatting is checking the content of all the cells across all the columns instead of checking the all the cells of each column separately.
I don't know if it's clear, basically, I want to each column formatted separately.
Since I'm using app script to generate the data in my sheet, I used the conditionalFormatRule builder object : https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder
It works like a charm.
But indeed, if I were to manually input data in the sheet, I would have to manually set the conditional formatting on each column... which is completely crazy.
Thank you anyway player0 !
In that case, you need to set up conditional formatting per each column separately (manually). So for columns A-Z you will have in total 26 conditional formatting rules in your spreadsheet per your sheet.
Is it possible to nest simple programs within a Google Sheets, similar to how you would with Visual Basic for Applications in Excel? Or alternatively a simple = syntax using regex, if there is a way to do that in Google Sheets?
I want to take a list of multiple names (name1, name2, name3) in a single cell from across multiple identical sheets and transpose them to another sheet within the same spreadsheet, check for duplicates and ignore capitals, etc. Is there a way to do this?
You are asking for an easy answer to a composite problem. To solve this, I would split the job into separate chunks:
Split the input cell content into
different cells. As it is unclear
how this format is, I cannot advice
on any specific method. Check out
ImportRange function or similar.
Transpose them. use =TRANSPOSE(area)
Remova duplicates, use =UNIQUE(area)
Check the Google Spreadsheet function list for details.
Nest them: =UNIQUE(TRANSPOSE(A1:C15)).
LOWER cannot be used in this nest as it works with only text input, not array input. Although you can use it for the first input cell.