ArrayFormula to automatically calculate specifics columns - google-sheets

I want an array formula to use with Google Forms data to automatically calculate running metrics on my data.
In this case, in column H, M, R and S I want it to auto-calculate whenever new responses come in. Columns H, M and R are ok except for column S.
I'm trying to use this formula below for the sum of each row in these specific columns H, M and R results in a grand total at the column S but isn't working.
=ARRAYFORMULA(SE(A2:A="";; MATRIZ.MULT(H2:H+M2:M+R2:R; TRANSPOR(SINAL(COL(H2:H+M2:M+R2:R))))))
What I'm doing wrong?
My Google Sheet:
https://docs.google.com/spreadsheets/d/1c6ZLnonx8BZ_KV0elW5xiuyQZPi86LOIUzdyVbBHAXQ/edit?usp=sharing

You have this at the beginning of your formula:
SE(A2:A=""
But A2:A is blank for all rows. So you are getting blanks in Column S, because that is what you instructed the formula to do.
Since you know that you will have something in R2:R of every active row, just change that segment of your formula to the following:
SE(R2:R=""
However, you are adding formulas directly to the form intake sheet. This is never a good idea; it can cause many problems. The professional standard is to leave form intake sheets alone, with no additional formulas, columns, conditional formatting, etc. Instead, use a separate sheet to bring over results from the form intake sheet and then process/add in that second sheet.

Related

Conditional Formatting based on two columns where found columns have to be from same row

I have two sheets with similar data. Each has a column for an X coordinate and a column for Y coordinate. I am wanting to highlight rows in Sheet A where a matching record is found in Sheet B. The issue I'm running into is that when I apply this rule I've come up with, it doesn't evaluate that X and Y values are from the same row, thus something like X=1, Y=20 in sheet A will highlight because a record in Sheet B was found with value X=1 and another record was found with Y=20 (So two records in Sheet B: 1,5 and 0,20 for example will cause 1,20 in sheet A to highlight)
=CONCAT(VLOOKUP(B:B,INDIRECT("'1862'!C:C"),1,FALSE),VLOOKUP(C:C,INDIRECT("'1862'!D:D"),1,FALSE))
Another potential thought I had was something like this
=ARRAYFORMULA(INDEX('1862'!$B:$B,MATCH(CONCATENATE($B3:$C3),'1862'!$C:$C&'1862'!$D:$D, 0),))
... but the row references $B3:$C3 won't work for conditional formatting on the entire column... e.g., the next row will have same $B3:$C3 reference when it should be $B4:$C4. I know I can probably put this into a new column, however, I have multiple sheets I want to check against. e.g., there is not only a sheet B, but a Sheet C, D, E, etc. It seemed easier to apply many conditional formatting rules ontop an existing column vs adding new columns, since I don't really care if it exists in 1 vs all, just that there is a match from any.
EDIT *** I came up with a solution to insert one new row in all sheets where it's a concat of x and y coordinate columns that way I can highlight based on this single column with x amount of rules for x amount of sheets to compare against. For anyone scratching their head like I was, see below. If anyone could, please enlighten me if there is a way to do what I had originally inquired about. Thnx.
=VLOOKUP(Q:Q,INDIRECT("'3760'!F:F"),1,FALSE)

I need a Google Formula that counts cells that meet two conditions in a range

I have a spreadsheet that I am running reports on. I need to count some data within the B column. The data is within the same column on the same sheet tab.
This formula below looks in the B column and counts C.
=COUNTIF('Google Sheet Tab1'!B1:B1071,"C")
This didn't work either
=COUNTIFS(Google Sheet Tab1!B1:B1071,"C",Google Sheet Tab1!B1:B1071,"N")
I need a formula that looks for C and N and adds them together and displays them.
The easiest way would be to add both conditions.
Please try
=COUNTIF('Google Sheet Tab1'!B1:B1071,"C")+COUNTIF('Google Sheet Tab1'!B1:B1071,"N")
COUNTIFS would need to satisfy both conditions at the same time.
Read more about it.

Is there a way to copy certain parts of a formula down a column in Google Sheets?

I'm creating a Google Sheet documenting how many times a certain item appears in a video game with the formula in the D column (formatted to a percent):
=IFERROR(C2/SUM(C2:C51))
I want the "C2" cell to apply down the column (C3, then C4, you get the idea), but I want the "C2:C51" array to stay constant while the C2 part gets applied down the down the column. How could I modify the formula to do this? (I could manually edit the formulas all the way down, I only have 50 rows, but I think it would be helpful to learn for the future)
Try this:
=iferror(C2 / sum(C$2:C$51))
See absolute and relative references.
Alternatively, try this array formula that fills a whole column in one go:
=arrayformula(iferror(C2:C51 / sum(C2:C51)))

Setting formula range from first to last populated cell in a column?

For a league I run we keep track of games played and w/l/t and calculate that into a ranking score. The player name is listed in column U and the ranking score in column AD of a fixed table. I then use an array formula to list the players in ranking order in column E (then vlookup to pull in other stats based on the value in E for that row). Specifically I use this formula in column E:
=ARRAY_CONSTRAIN(ARRAYFORMULA(INDEX($U$4:$U$153,MATCH(LARGE($AD$4:$AD$153-ROW($AD$4:$AD$153)/COUNT($AD$4:$AD$153),ROW(E72)-ROW(E$4)+1),$AD$4:$AD$153-ROW($AD$4:$AD$153)/COUNT($AD$4:$AD$153),0))), 1, 1)
I need to be able to add players to the table in U:AD without having to edit the formula every time, i.e. from $U4:$U153 and $AD$4:$AD$153 to $U4:$U154 and $AD$4:$AD$154 in all the various places in the formula then copy the new formula all the way down.
Is there a way that I could define the range as $U$4:$U(last populated row) and the same for column AD in the above formula?
I eventually be using this in both Excel and Google Sheets so I would really like to avoid scripting. First I'm looking to solve this for Google Sheets.
Here is a copy of the sheet I am working on.
You could use INDEX and COUNTA
Instead of $U4$U153,
$U4:INDEX(U4:U,COUNTA(A4:A))
The COUNTA portion will give the number of populated rows and feed it into INDEX to give $U4:$U153
The answer for the Google sheet that you shared.
skip to the end for the simple solution
I used the indirect method by entering a formula in E1 that counts the AD column for player stats and adds 3 to get the last row. (I was going create the full range AD4:AD?? but you also have U4:U73 in the formula)
=counta(AD4:AD)+3
I then changed your formula use indirect, indirect("$AD$4:AD"&E$1), to reference the last row number in cell E1 to create the required range.
=iferror(ARRAY_CONSTRAIN(ARRAYFORMULA(INDEX(indirect("$U$4:U"&E$1),MATCH(LARGE(indirect("$AD$4:AD"&E$1)-ROW(indirect("$AD$4:AD"&E$1))/COUNT(indirect("$AD$4:$AD"&E$1)),ROW(E4)-ROW(E$4)+1),indirect("$AD$4:$AD"&E$1)-ROW(indirect("$AD$4:$AD"&E$1))/COUNT(indirect("$AD$4:AD"&E$1)),0))), 1, 1),"")
I discovered by accident that if you remove the ARRAY_CONSTRAIN from your formula and change U4:U73 to U4:AC73 then the formula will populate the scores to the right of your formula where you currently have vlookups. I put an example of this in E4 but note that you will have to delete the vlookup formulas if you want to fill the formula down otherwise it will show REF
I also added iferror so that the formula can be copied to the same row as the end of the "open slots" in column A without showing errors.
Also, I got to this point and was thinking that since you're using Google Sheets, a better way to do this could be to use the QUERY function to pull the data and also sort it using ORDER BY with a single formula in cell E4.
I've not really used the QUERY function but maybe it's time to learn.
EDIT
Turns out it doesn't take much learning
=QUERY(U4:AD,"SELECT U,V,W,X,Y,Z,AA,AB,AC ORDER BY AD DESC")
Put the formula above in cell E4 and delete everything beneath and scores to the right and you're done. you'll notice that there is no indirect because Google understands that you don't want the blank rows.
https://docs.google.com/spreadsheets/d/16IclEmKwDFdInIAZhH2vt-tLJ5pbwX06jv9xrUXwhnY/edit?usp=sharing
Why are you using $ signs around U4:U153,remove $ signs for rows that will give you flexibility while keeping columns fixed.As your drag the formula,the data array will append the newly filled cells or you can create table using Ctrl+T that will automatically expand as you keeping adding data.

Google Sheets: Group Values in rows based on duplicate value in column

I am trying to sort Google Sheets data in columns.
Raw Data
Desired Output
I know that this can be offered with some time of QUERY function but I cannot get it to work exactly how I want. I have already read through this thread on Google Sheets and this thread on Excel.
I don't think query can do exactly this: it can aggregate data in a few ways, but not in the way of "take the values and arrange in a row". I would use unique and filter for this purpose. Assuming the input columns are A,B and the output columns are C, D,... the formulas would be
C2: =unique(A2:A) to return the team numbers without repetition
D2: =transpose(filter(B2:B, A2:A=C2)) to return the matching scores, transposed to become a row.
The formula in D2 needs to be copied/dragged down the D column.

Resources