Google Sheet Issue in If function with array formula - google-sheets

Am facing issue in google sheet "if" function as discussed below:
In Cell B4 of the Google Sheets (link is given below) am using below formula and then by draging the formula am getting correct result :
=if(isblank(C4) , B3 , C4 )
But when I use the same formula with ARRAYFORMULA am getting the error. The ARRAYFORMULA is applied in cell A4:
=ARRAYFORMULA(if(isblank(C4:C) , A3:A , C4:C ))
Help on how to fix the error with ARRAYFORMULA in above case would be greatly appreciated.
Below is the link of the sheet:
https://docs.google.com/spreadsheets/d/1fB31msHFWDVv9eweb2H0XJ6zDfpKjxEZG9bpXb36_44/edit#gid=0

Limit the number of rows and apply this formula in third row wherever you need
This is explaned here https://infoinspired.com/google-docs/spreadsheet/fill-blank-cells-with-the-values-above/
The reason is that when lookup find an error in the key, it takes the number immediatly lower. It's why we divide the row by 0 when the cell is empty.
=ArrayFormula(lookup(row(C3:C),row(C3:C)/if(C3:C<>"",1,0),C3:C))

To make it work go to
"File" --> "Spreadsheet settings" --> "Calculation" --> "Iterative calculation"
There you press On and nothing else.
It now works.
Good read: Choose how often formulas calculate

Related

Google sheets match index arrayformula

I have a count using a formula that needs to be stretched (the formula is in cell F9
) https://docs.google.com/spreadsheets/d/1sZM1aAuqkHNONJWagiu3aTw6_vfw515gbiKwhKuQAD4/edit#gid=1464536028
=IF(ISBLANK(E9);;IF(O9=TRUE;INDEX('Тех Лист'!$F$2:$M$2;MATCH(TRUE;Q9:X9;0));IF(P9=TRUE;INDEX('Тех Лист'!$F$3:$M$3;MATCH(TRUE;Q9:X9;0));"Ошибка!")))
I tried to remake it under Arrayformula, but nothing came of it ... later I got the idea to do it through query, but when I add query to the array, the data I need disappears
=INDEX(split(FLATTEN(TRANSPOSE({'Стадник'!$D9:D&"x"&'Стадник'!$Q8:$X8&"x"&'Стадник'!Q9:X&"x"&'Тех Лист'!$F$2:$M$2&"x"&'Тех Лист'!$F$3:$M$3}));"x"))
Please tell me how I can compare the headers, and if the list is TRUE, take the sum from the table
In G9 I entered
=ArrayFormula(if(len(E9:E); vlookup(trim(transpose(query(transpose(if(Q9:X; Q8:Y8;));;50000)))&""; transpose('Тех Лист'!E1:M3)&""; if(O9:O; 2; if(P9:P; 3;));0)+0;))
Note that this solution requires that only one checkbox can be ticked in the range X9:X.
See if that helps ?

Google Sheet ARRAYFORMULA with IF

I am using IF function as below and getting the result, but when I use the same function with ARRAYFORMULA am getting the circulating dependency error:
Without ARRAYFORMULA
=if(isblank(A2),"",IFERROR(IF(A2<>A2,1,B1+1) ))
With ARRAYFORMULA =ARRAYFORMULA(IF(A2:A<>A2:A,1,C1:C+1) )
Further, the result of formula is getting started from cell No. B3, is it possible to get the result started from cell B2 i.e. the cell in which the formula is applied.
Below is the link of the sheet:
https://docs.google.com/spreadsheets/d/1qLjYukNR1E_vgwqeGutQRtg3H7-3eU2heUPHsqQpg90/edit#gid=1713558709.
Any help on above will be greatly appreciated.
I have added a new sheet ("Erik Help") to your sample spreadsheet. This array formula can be found in B1 of that sheet:
=ArrayFormula({"Header"; IF(A2:A="",, ROW(A2:A)-VLOOKUP(ROW(A2:A),{1;FILTER(ROW(A2:A),A2:A="")},1,TRUE))})
You can change the header text as you like.
Here is a plain-English interpretation of the rest of the formula: "If a cell in A2:A is blank, leave it empty; otherwise, subtract the row number of the last empty row from the current non-blank row number. If A2 is non-blank, return 1."

Copy a NB.SI formula into a Google Sheets sheet

I am turning to you today for help with a problem on Google Sheets.
I receive this data from a Google Sheets form: An answer (0 or 1) to 5 different questions.
I would like to calculate in column A (in green) the scores out of 5 for each row, as soon as a new row is added by the form.
I tried to use the ARRAYFORMULA() function but it does the count for all the cells in the range and not just row by row:
Do you have an idea to have a score out of 5 for each line of question and have it apply to the whole file as soon as a new line is added by the Google Form?
Thanks for your help
If you want to use COUNTIF (English correspondance for NB.SI), modify your formula to:
=ARRAYFORMULA(COUNTIF(IF(B1:F=1,ROW(B1:B)), ROW(B1:B)))
or for your regional settings:
=ARRAYFORMULA(NB.SI(IF(B1:F=1,ROW(B1:B)), ROW(B1:B)))
You can get a row-by-row sum with sumif() like this in cell A3:
=arrayformula( sumif( if(column(B3:F), row(B3:F)), row(B3:F), B3:F) )
This formula uses open-ended range references so it will create results all the way down to the end of the sheet. To limit that, use a range reference like B3:F100 instead.

Google Sheet SUMIF not summing range

I am trying to SUM all rows based on the condition that a row's value is greater than 0. However, the formula is only calculating the first row and ignoring the rest of the range. I encountered this issue on a different spreadsheet but I isolated the issue on a new spreadsheet to show you and ask questions.
The answers should be B1 ($5), B2 ($15), B3 ($30).
I followed the formula's usage as explained in the Google Docs https://support.google.com/docs/answer/3093583?hl=en
The formula with respective row number =SUMIF(A1, ">0", A$1:A1)
Update - The below is my intended purpose. I have a spreadsheet that calculates money In and Out. For each of these transactions, I simply want the balance as a result of such transactions. This only works for the first row. (I hardcoded the values for the rest of the rows just to show my goal.)
try:
=ARRAYFORMULA(IF(A:A="",,SUMIF(ROW(A:A), "<="&ROW(A:A), A:A)))
if you prefer dragging do:
=SUMIF(INDIRECT("A1:A"&ROW()), ">0")
UPDATE:
=ARRAYFORMULA(IF(D2:D="",,
SUMIF(ROW(D2:D), "<="&ROW(D2:D), D2:D)-
SUMIF(ROW(E2:E), "<="&ROW(E2:E), E2:E)))

Error in max-if function .

I am not able to work around a max-if formula in google sheets . What am I doing wrong ?
https://docs.google.com/spreadsheets/d/1BfGX85iur0Nk1gjsa-lZ3hnFnNNvgK9rFgTkOvhFSIw/edit?usp=sharing
In cell K3 , have inserted a formula where it picks the highest amount from column F when column A matches H3. This works perfectly in cell K2 but I fail to understand whats gone wrong in the subsequent rows.
change
=max(IF(A:A=H2,F:F)) to =max(filter(F:F,A:A=H2))
If you want to use your own formula you'll need to insert ArrayFormula.
=max(ArrayFormula(IF(A:A=H2,F:F)))

Resources