Search code examples
arraysgoogle-sheetsgoogle-sheets-formulaarray-formulasifs

Working formula broken after applying Arrayformula


Does anyone know why a working formula can be broken by Arrayformula?
Below is the formula that is working.

=IFS(
AND(LEN(K:K)=0,LEN(O:O)=0,LEN(S:S)=0),"No Grade",
AND(LEN(K:K)>1,LEN(O:O)=0,LEN(S:S)=0),"1 Grade",
AND(LEN(K:K)>1,LEN(O:O)>1,LEN(S:S)=0),"2 Grade",
AND(LEN(K:K)>1,LEN(O:O)>1,LEN(S:S)>1),"3 Grade")

The result after applying Arrayformula below is "No match" and it applys to 1 cell only.

=ArrayFormula(IFS(
AND(LEN(K:K)=0,LEN(O:O)=0,LEN(S:S)=0),"No Grade",
AND(LEN(K:K)>1,LEN(O:O)=0,LEN(S:S)=0),"1 Grade",
AND(LEN(K:K)>1,LEN(O:O)>1,LEN(S:S)=0),"2 Grade",
AND(LEN(K:K)>1,LEN(O:O)>1,LEN(S:S)>1),"3 Grade"))

Solution

  • ARRAYFORMULA does not support AND fx. you need to use 0/1 logic:

    =ARRAYFORMULA(IFS(
    (LEN(K:K)=0)*(LEN(O:O)=0)*(LEN(S:S)=0), "No Grade",
    (LEN(K:K)>1)*(LEN(O:O)=0)*(LEN(S:S)=0), "1 Grade",
    (LEN(K:K)>1)*(LEN(O:O)>1)*(LEN(S:S)=0), "2 Grade",
    (LEN(K:K)>1)*(LEN(O:O)>1)*(LEN(S:S)>1), "3 Grade"))
    

    0