conditional formatting for newly added rows - google-sheets

Ok, I really have no business working in spreadsheets or any data entry program for that matter. So basically what I am saying is I have no idea how to use much of the formula and script/language features. So any help would be AWESOME!
Heres my issue...
I have two Columns, One contains Conditional formatting (Cell Color) for for 3 variables respectfully. The Other Column is a DropDrown with a list.
I'm hoping to avoid explaining to the person(s) here how to keep applying rules as new Rows are added to the end of the sheet.
Is there an a script someone could dig up for me that (I'm guessing onEdit) will automatically apply my Conditional Formatting and DropDowns the new Rows?
Thank you so much!

I'm not sure this would ever receive another answer so, for the moment considering only I need to to just compare b3-g3>color h3 b4-g4> color h41:
In New Google Sheets, apply your formula to H2:-
=arrayformula(if(G2:G=0,"",if(B2:B=G2:G,"Completed",IF(B2:B>G2:G,"Back Ordered",if(B2:B<G2:G,"Over Shipped")))))
and rules like these in Conditional formatting...:
and I think as new rows are added and data populated in A:G the formulae (both if and Conditional) extend automatically, with no fill where the cell in Column G is 0 or empty.

Related

Google Sheet Array Formula to automatically transpose responses from a Google Form into a single cell

I want to tweak an Array Formula that I'm trying to use to transpose a set of responses from a Google Form into a single 'list' in a cell in the linked Google Sheet.
Here is a simplified mock-up of the Google Sheet: https://docs.google.com/spreadsheets/d/1BKgjGK2RbXC5FkCgBOU53dLEb3fDeQADujenrqRgnT0/edit?usp=sharing
As you can see, I have a working Array Formula 'hidden' in the header for Column A, which takes the content from columns B:K in each row and transposes them with line breaks to make a nice neat list in the first cell at the start of each row (A2, A3, A4, etc.) Here is the Array Formula for ease of reference:
=ARRAYFORMULA({"Points to Develop";
transpose(query(transpose ($B$2:$B&CHAR(10)&$C$2:$C&CHAR(10)&$D$2:$D&CHAR(10)&$E$2:$E&CHAR(10)&$F$2:$F&CHAR(10)&$G$2:$G&CHAR(10)&$H$2:$H&CHAR(10)&$I$2:$I&CHAR(10)&$J$2:$J&CHAR(10)&$K$2:$K)
))})
The problem I'm having is that the formula stops working as soon as a new Google Form is submitted, as the new row of responses arrives at the top and 'pushes the formula down'/throws everything out of alignment, when all I want is for it to stay in place and run automatically every time a Form is submitted. As you can probably gauge by my limited technical terminology, I'm very much a novice at this!
How can I fix this formula, or is there a simpler or better alternative that will achieve the same results?
As often happens in life, the nature of the problem turned out to be the source of the solution. Here’s a condensed version of my thoughts as I slowly found my way to an answer (you can almost hear the hamster wheels turning in my head!):
The problem with formulas in a Google Sheet linked to a Google Form is that each new entry/submission from the form always arrives in Row 2 …
In fact, the only thing that stays ‘in place’ in the Google Sheet is the Header Row/Row 1 …
So, rather than using a formula that refers to a ‘Row 2’ that will become ‘Row 3/4/5/etc.’ as new Google Forms are submitted, I should use a formula that always refers to Row 1, that is, by using OFFSET
The obvious (if inelegant) formula that resulted from this is [I've also placed this in the final column in the Google Sheet that I linked to in my original question]:
= ARRAYFORMULA({"Points to Develop [Working OFFSET Formula]"; transpose(query(transpose(OFFSET(A1:A,1,1)&CHAR(10)&OFFSET(A1:A,1,2)&CHAR(10)&OFFSET(A1:A,1,3)&CHAR(10)&OFFSET(A1:A,1,4)&CHAR(10)&OFFSET(A1:A,1,5)&CHAR(10)&OFFSET(A1:A,1,6)&CHAR(10)&OFFSET(A1:A,1,7)&CHAR(10)&OFFSET(A1:A,1,8)&CHAR(10)&OFFSET(A1:A,1,9)&CHAR(10)&OFFSET(A1:A,1,10)))) })
I am sure that there are neater ways of getting to the same result, but this is one that works for me … and is within my levels of comprehension, so I can fine-tune and fix it as needed.

Highlight rows with unique values when compared to a different sheet

I have two sheets:
The first is the Master Sheet of responses to a survey.
The second will be an Update Sheet auto-generated from the new responses.
New responses can be either entirely new rows or edits/updates to previous entries.
I am trying to create a Conditional Formatting rule to auto-highlight any rows in the Update Sheet which do not match the corresponding rows in the Master sheet.
(A row "does not match" when it shares the same Respondent ID number as the Master sheet row but contains different information in the following cells.)
I'm also trying to make it ignore any empty cells.
I created named ranges: "Master" and "Update" on each sheet respectively.
Here's an image of what I'm trying to accomplish:
I'd like to accomplish this without scripts or using a helper column if possible.
Any help from you genuine experts out there would be greatly appreciated!
And here's the Demo Sheet for reference.
So far I have tried to use INDIRECT to accomplish the cross-sheet highlighting (below). However, that didn't work so I'm obviously doing something wrong.
CONDITIONAL FORMATTING:
- Apply to Range: A3:A200,F5:F200
- Custom Formula: =ISNA(match(A3,INDIRECT("Master!F5:AS"),0))
Update #2:
With help from #I'-'I I've been able to get closer with:
CONDITIONAL FORMATTING:
Apply to range: A3:F200
Custom Formula: =and(isna(match($A3,INDIRECT("Master!F5:F"),0)),not(isblank($a3)))
However, while it now highlights the "New Data" rows, it ignores the "Updated Data" row which has the same Respondent ID but different data in the following cells.
Any suggestions on how to rectify this would be appreciated!
Conditional formatting custom formula applied to range A3:F200:
=IF(LEN($A3),IFERROR(SUMPRODUCT(QUERY(INDIRECT("Master!F5:J"),"where F = "&$A3&" limit 1")<>$A3:$E3),1),)
HTH
Adam
With help from #I'-'I I now have the following solution, which works perfectly. :
=AND(NOT(ISBLANK($A3)),OR(IFERROR(ARRAYFORMULA(VLOOKUP($A3,INDIRECT("MASTER!F5:J"),COLUMN($A$1:$E$1),0)<>$A3:$E3),1)))
#I'-'I provided this explanation:
VLOOKUP to lookup ID(A3) in the master sheet and return the
corresponding 5 columns(5 cells).
VLOOKUP results are compared
against current row's 5 columns(<>A3:E3).
IFERROR to return TRUE if
lookup fails(suggesting NewData).
ISBLANK to ignore blank rows.
AND/OR/NOT Self explanatory. Used to combine TRUE/FALSE in a specific
way to achieve intended result.
The solution by #AdamL also works, but I don't know how to give credit to two answers at the same time.

Conditional formatting based on multiple criteria

I don't know if what I wrote in the title is specific enough to what I'm looking for, anyway, I'll try and explain as much as possible here.
I have two sheets, one is the layout, the other is the database.
The layout is a layout of computers in an office, and in the database I have various information about those computers (e.g. manufacturer, processor, etc).
What I'm looking for is a way to change the colors of the cells in the layout sheet based on the data in the 'db' sheet.
This is the first sheet, where numbers are the ID's of the computers.
On the second sheet, I have more information about each number.
This is from the second sheet, the 'db' sheet.
What I'm trying to do here is change the colors of the cells in the first sheet based on information on the second sheet and based on the dropdown selected.
For example, in the pictures above, I have chosen 'computer' which needs to change the color of the cells based on the manufacturer given in the second sheet.
I would've posted a formula that I'm currently working on, but the problem is I'm very new to conditional formatting and currently am completely stumped on this problem.
Thanks in advance.
This might not be exactly what you're looking for but it's on the right path. I'm not sure if "Dell" and "HP" are supposed to be dynamic results of the data validation or? Either way...
=AND(VLOOKUP(C2:C,INDIRECT("Sheet2!A2:B"),1)=C2:C,VLOOKUP(C2:C,INDIRECT("Sheet2!A2:B"),2)="Dell",$D$3="computer")
and
=AND(VLOOKUP(C2:C,INDIRECT("Sheet2!A2:B"),1)=C2:C,VLOOKUP(C2:C,INDIRECT("Sheet2!A2:B"),2)="HP",$D$3="computer")
Be sure to reference C:K in the Conditional Formatting Rules. That way you can avoid having to repeat the process for each column.

Apply conditional formatting to whole rows only if multiple rows render true?

I have an advertising campaign tracker that have rows for name, jobcode, startdate and endate. Multiple lines have the same job code, but each of them can have a different end date. I need to apply conditional formatting to all rows that have an enddate that has passed – but only if the end date has passed for all rows with the same jobcode. I have searched this forum and various places online without luck, I really would appreciate your advice on this.
I have created a sample sheet that you may look at. I have created a formatted sample of what I want to achieve at the bottom. Feel free to play on the top one.
Sample Spreadsheet
Thanks in advance!
This formula will work when applied to A3:G8 (or further down the spreadsheet):
=countifs($D$3:$D$8,$D3,$G$3:$G$8,">="&today())=0
the $D in $D3 is to keep the formatting formula locked on column D as it applied across columns A:G.
Use this in the Custom Formula option of the Conditional Formatting

Google Spreadsheet range names

In Google Docs Spreadsheets, one can use Range Names to put labels on ranges of cells to make formulas more legible. In most formulas, one can use the range C:C to denote the entire C column, and C2:C to denote the entire C column after and including C2.
Is there a way to create range names of the same nature? When I try C:C or C2:C or Sheet!C:C or 'Sheet'!C:C I always get the error "The range you specified is not in a valid range format." I would like the range name to expand as my form adds rows to my spreadsheet. Thanks.
I just discovered the if you use the '-' operator, it starts from the bottom row. So,
=INDIRECT("-D:D12")
starts from the last row and works it's way up to D12!
I had a similar problem. Although I do not know how to do exactly what you are asking, you can do essentially the same thing by referencing cells that are not yet created.
For example:
Column C currently has 100 cells (100 rows in the sheet)
Instead of referencing it with C:C, use C1:C999
If you make the row reference high enough, then you can account for future rows that you will create. Hope it helps.
I don't think so... even if you select a column manually while in the Range Name selector, it complains. That would be a nice feature and it would make sense since they support column ranges for formulas already.
I believe this does work now. I have a range name of "Sheet1!A10:AW10" with no problems.
If you try to do a whole column, I think it will just take all the available cells in the column at that time. i.e. if you make more cells later, you need to manually add to the range name.
I had the same problem with ranges such as A3:A which normally work in other places such as ARRAYFORMULA(), but the workaround is to not specify the starting row, such as A:A. In cases when this would be a problem, you can proxy the data through another column using something like ARRAYFORUMULA(A25:A) as the formula.
Update: Apparently I haven't read the question properly. I see that the OP had tried leaving out the row number, so perhaps it wasn't working at that time, but it does now. The notations still don't work.
Update2: I didn't notice that google spreadsheet replaces ranges like A:A to A1:A50, so new rows added later on do not still get included. That I think is what #Dean is trying to say in his answer.
I think it's a helpful tool to use Insert -> Define new range to make a wizard appear and make the syntax correct. Hehe
My response in other topic

Resources