Conditional formatting dates relative to a name in google sheets - google-sheets

I'm relatively new to using google sheets and formulas and what not.
I am trying to highlight a row of cells using conditional formatting based on whether or not a name and date are both present in another range of cells.
In the case of the names, I need an exact match which I have figured out already easily enough.
In the case of the dates, I need it to highlight only if the leftDate is less than(prior) or equal to the rightDate displayed in another range of cells.
For example,
Names and Dates
In the left section of the sheet, the row containing Jacob should be highlighted due to his name being present in the right section of the sheet AND the date being prior.
Where as Nicks row in the left section of the sheet would not be highlighted due to the date being after.
Andrews row on the left would be highlighted due to having the same date.
Mikes row would not due to his name not being present on the right section.
so far for comparing the names I am using a COUNTIF function, and to enable both names and dates to function I have it nested in an AND function, like so
=AND(COUNTIF(leftNames = rightNames),COUNTIF(leftDates>=rightDates in relation to name))
The name portion works it is the date portion I am struggling with, sorry for the long winded explanation. Any help is appreciated!
Thanks

try for range A3:D:
=INDEX(IF($B3<VLOOKUP($A3, $F$3:$G, 2, 0), 1,
MATCH($A3&$B3, $F$3:$F&$G$3:$G, 0)))

Related

Limit Number of Cells with the Same Value in Google Sheets

I'm looking to limit the number of cells that can have the same value in a column.
More precisely, I'm keeping track of people signed up for meeting dates and once four other people are assigned that date, it not to be an option anymore or highlight the cell in red? Something to alert that the meeting is already full.
Thanks in advance for any help or advice.
If highlighting the cell in red would be enough, then you can use this custom formula in your Conditional Format Rules.
Apply to range = A1:A
Custom Formula:
=countif(A:A,A1)>=4
What it does?
Increment a counter if duplicates are found in the given range using COUNTIF()
If the number of duplicates are >= 4 then set the background color of the cell to red
Sample:
Another variation if you have a different list of available dates to highlight and a list of booked dates
Apply to range = A1:A
Conditional Formatting Custom Formula:
=countif(C:C,A1)>=4
Highlighting of cells will only be applicable in Column A. It will check how many duplicates data in Column A exist in Column C using COUNTIF()

How to offset importrange() within an arrayformula()

I have two Google Sheets (separate documents) that contain information, let's call them Master & Source. Within Source I have an undefined range of cells that are in sorted order by date that I need to display within Master. Master is intended to have links to all the various Source sheets, in normal operation, I'll have multiple of these, so I can view all of the quick information about all of the Source sheets displayed conveniently in Master. Master contains a date range that starts before and ends after the date range from within Source (to accommodate other date ranges from other Source sheets).
My goal is to create a single cell formula that can be copied and pasted for each Source that I need to view in my Master that would fill the cells in columns before and after the date range from Source with the string "No Class" and all the cells that match the date range from Source would simply be a copy/reference to the matching cell from Source. This is the formula I came up with:
=ARRAYFORMULA(if({A1:Z1;A1:Z1;A1:Z1;A1:Z1;A1:Z1}<importrange(Link!B4,"Source!A1"),"No Class",if({A1:Z1;A1:Z1;A1:Z1;A1:Z1;A1:Z1}>Link!N4,"No Class",importrange(Link!B4,"Source!A1:Z99"))))
Link!N4 = Start Date
Link!B4 = hyperlink to the google sheet `Source`
Amazingly, it works quite well, except for one major drawback: the array of values from importrange are relative to the cell that the formula is in - aka, the range from Source starts at Master!A1 rather than starting at the first column that has the same date as Source!A1.
This is a screenshot of the result of my formula in Master. *EDIT: No Class has conditional formatting to make the font color match the fill, so you can't see it in this screenshot, but they are the dark grey cells.
And another screenshot, this time of the Source I'm trying to view.
I realize this approach might not be the only way (or might not work at all) but each time I try something else it always comes down to the same problem: how do I dynamically start the importrange at the first column that matches the date from Source using a formula that is in the first cell?
I found an acceptable workaround. This is by no means a solution to the problem of trying to offset data within an array, but it allows me to get what I needed to be done. This code needs to be filled using the fill handle (blue square on the bottom right of the selected cell). I'm adding this here in the event someone gets in a similar situation and needs an alternative way to look at the problem.
=iferror(if(importrange(Link!$B4,"Source!A1")>A2,{"No Class";"No Class";"No Class";"No Class";"No Class"},if(importrange(Link!$B4,address(1,COLUMN(A3)-match(importrange(Link!$B4,"Source!A1"),$A2:$Z2,0),4,TRUE,"Source"))=A2,importrange(Link!$B4,address(2,COLUMN(A3)-match(importrange(Link!$B4,"Source!A1"),$A2:$Z2,0),4,TRUE,"Source")&":"&address(5,COLUMN(A3)-match(importrange(Link!$B4,"Source!A1"),$A2:$Z2,0),4,TRUE)),"No Class")),{"No Class";"No Class";"No Class";"No Class";"No Class"})
A2 is the date of the column in master I'm trying to import into, it changes as your drag the fill handle.
A3 is the cell that the formula is currently in
This works by first checking iferror (but I'll come back to that).
Then, if the date in the same column as the formula is less than the start date "No Class" fills the column (hides dates prior to start date)
ELSE If the date in the same column as the formula is the SAME as the date in the column of the Source (offset by the number of columns away from the start date) then fill the column with the corresponding column from Source (aka, this fills one column at a time, rather than importing the entire range at once).
(Back to iferror) An error is returned for any columns that come after the end date - so iferror fills those columns with "No Class"

Conditional formatting based on cells matching a column of another sheet

I've got a spreadsheet made on Google Sheets that contains 11 sheets, and each sheet is a set of things that I'm considering buying.
Some sets contain the same individual pieces as something else.
For example item A might be on sheet A and sheet D.
I'd like to make some kind of formula to highlight all duplicates, so that when I was looking through the sheet I could see whether buying item A will help me complete more than just the set that I'm looking at. So I can look at a set and if it's mostly green I know there's more value in buying it as almost all of the contents will also go towards another set.
I know how to do it so that they glow if they match on the same sheet.
$A2=$B2
However I'm not sure how to do it across sheets, or how I'd include if statements. As the colour would have to change if it matches any cells in column A on any sheet. They're also not in the same order on different sheets so while item A might be in A3 on sheet A, it might be in A17 on sheet D.
I'm not sure how possible something like this is, but I'd appreciate any help.
Google Sheets does not allow direct references to cells in other sheets in conditional formatting formulas. But this can be circumvented with indirect:
= A2 = indirect("Sheet2!A2")
formats the current cell (A2) if it's the same as the contend of A2 on Sheet2.
But you want to check whether the content is duplicated anywhere in column A of another sheet. This can be done with match: select the column A2:A of the present sheet, and add conditional formatting with custom formula
=match(A2, indirect("Sheet2!A2:A"), 0) > 0
Here match returns either the position of found element (a positive number) or #N/A, and the formula evaluates to True in the former case only.
Although the formula says "A2", it can be applied at once to any range that has A2 as its upper left corner.

Conditional Formatting cells in column up to and including the last one with text entered

I am using Google Sheets and trying to write a custom formatting rule that seems like it should be simple. I am trying to figure out how to conditionally format all the cells in a column INCLUDING AND ABOVE (but not below) the cell that meets my condition.
I've found a lot of things that will format the entire column, but that's not what I'm looking for.
The image below is a basic example that I manually colored in to do what I want.
It's for my budget spreadsheet, where each row is an entry from a particular date. I have an "Agreement" column that is empty except when I enter the date that I reconciled the budget. I want it to color that cell and all the empty cells above it green, signifying at a glance: "everything up to this point is ok/has been checked over". Then as time goes by, and I enter another date several rows below, I want it to extend the colored shading up to there.
I've been searching, but it is hard to articulate this; if I say "until this cell" I get results for "shade cell until text is entered"; any mention of "above" and "below" generally relates to the values in the cells; I've found some things about Indirect but just for a single cell above, not for all cells above the current cell.
Wondering if this is even possible...
Google Sheets example
If you create a conditional formatting rule for column A using a Custom Formula you can use this formula:
=COUNTIF(ROW(),"<="&LARGE(ArrayFormula(IF(ISBLANK(A1:A100),"TRUE",ROW(A1:A100))),1))
The larger the ranges you use, the slower it will be however.

Google Sheets - How to highlight cells in a row that match values from other cells?

I have a row of values (say 1-10)
At the beginning of the rows I have 2 numbers generated from dates from other cells that represent week numbers. (eg, 3 and 9)
I want my row to highlight all the numbers from 1-10 that are between the values from the week number cells. (eg the cells with numbers 3,4,5,6,7,8 and 9 will automatically turn a colour (say green))
I've tried the conditional format, using the "between" values.
It doesn't work.
If I just type the numbers into the format box, it will work, but the problem is I need it to refer to the value in the cell NOT a number I type in, because there is a likelihood that the dates could change, which will affect the value shown in week number cell, so I need it to work automatically and not require me to go through every single row changing values for the formatting.
Is this even possible on sheets?
Thanks in advance, I am hoping I've just overlooked something simple.
Use a custom function for conditional formatting. For instance, if the columns you describe are in Row 2, this function will evaluate "TRUE" for numbers that are >= A2 and <= B2:
=AND(C2>=$A2,C2<=$B2)
Select the range of cells you wish to create a conditional format for; C2..L2, say. Open the conditional formatting dialog, and choose "Custom formula". Enter the formula above; note that itr refers to the top-left corner of the range you wish to apply the formula to - Sheets will automatically adjust it for the rest of the range, which is why it's important to use absolute references for the first two columns.

Resources