简体   繁体   中英

Can this formula be used in an ARRAYFORMULA in Google Sheets?

I have a formula that I've been trying to convert to an ARRAYFORMULA but I've been unsuccessful. As the formula is (below) it works just fine but when I convert to an ARRAYFORMULA it shows blank (because I asked the formula to show " " if none of the conditions are met.

Here's the non-array formula:

    =IFERROR(IF(AND(D5="SAN BERNARDINO",K5>1,K5<1001),VLOOKUP(D5,ApprovalKey,2,FALSE),
IF(AND(D5="SAN BERNARDINO",K5>1002,K5<5001),VLOOKUP(D5,ApprovalKey,3,FALSE),
IF(AND(D5="SAN BERNARDINO",K5>5002,K5<10001),VLOOKUP(D5,ApprovalKey,4,FALSE),
IF(AND(D5="SAN BERNARDINO",K5>10002),VLOOKUP(D5,ApprovalKey,5,FALSE),
IF(AND(D5="ATLANTA",K5>1,K5<1001),VLOOKUP(D5,ApprovalKey,2,FALSE),
IF(AND(D5="ATLANTA",K5>1002,K5<5001),VLOOKUP(D5,ApprovalKey,3,FALSE),
IF(AND(D5="ATLANTA",K5>5002,K5<10001),VLOOKUP(D5,ApprovalKey,4,FALSE),
IF(AND(D5="ATLANTA",K5>10002),VLOOKUP(D5,ApprovalKey,5,FALSE),
IF(AND(D5="BEDFORD PARK",K5>1,K5<1001),VLOOKUP(D5,ApprovalKey,2,FALSE),
IF(AND(D5="BEDFORD PARK",K5>1002,K5<5001),VLOOKUP(D5,ApprovalKey,3,FALSE),
IF(AND(D5="BEDFORD PARK",K5>5002,K5<10001),VLOOKUP(D5,ApprovalKey,4,FALSE),
IF(AND(D5="BEDFORD PARK",K5>10002),VLOOKUP(D5,ApprovalKey,5,FALSE),"")))))))))))))

and here's the array I attempted:

    =ARRAYFORMULA(IF(AND(D2:D="SAN BERNARDINO",K2:K>1,K2:K<1001),VLOOKUP(D2:D,ApprovalKey,2,FALSE),IF(AND(D2:D="SAN BERNARDINO",K2:K>1002,K2:K<5001),VLOOKUP(D2:D,ApprovalKey,3,FALSE),
IF(AND(D2:D="SAN BERNARDINO",K2:K>5002,K2:K<10001),VLOOKUP(D2:D,ApprovalKey,4,FALSE),
IF(AND(D2:D="SAN BERNARDINO",K2:K>10002),VLOOKUP(D2:D,ApprovalKey,5,FALSE),
IF(AND(D2:D="ATLANTA",K2:K>1,K2:K<1001),VLOOKUP(D2:D,ApprovalKey,2,FALSE),
IF(AND(D2:D="ATLANTA",K2:K>1002,K2:K<5001),VLOOKUP(D2:D,ApprovalKey,3,FALSE),
IF(AND(D2:D="ATLANTA",K2:K>5002,K2:K<10001),VLOOKUP(D2:D,ApprovalKey,4,FALSE),
IF(AND(D2:D="ATLANTA",K2:K>10002),VLOOKUP(D2:D,ApprovalKey,5,FALSE),
IF(AND(D2:D="BEDFORD PARK",K2:K>1,K2:K<1001),VLOOKUP(D2:D,ApprovalKey,2,FALSE),
IF(AND(D2:D="BEDFORD PARK",K2:K>1002,K2:K<5001),VLOOKUP(D2:D,ApprovalKey,3,FALSE),
IF(AND(D2:D="BEDFORD PARK",K2:K>5002,K2:K<10001),VLOOKUP(D2:D,ApprovalKey,4,FALSE),
IF(AND(D2:D="BEDFORD PARK",K2:K>10002),VLOOKUP(D2:D,ApprovalKey,5,FALSE),"")))))))))))))

Am I just not allowed to use an arrayformula in this way?

sure, try:

=ARRAYFORMULA(IFERROR(
 IF((D5:D="SAN BERNARDINO")*(K5:K>1)   *(K5:K<1001), VLOOKUP(D5:D,ApprovalKey,2,0),
 IF((D5:D="SAN BERNARDINO")*(K5:K>1002)*(K5:K<5001), VLOOKUP(D5:D,ApprovalKey,3,0),
 IF((D5:D="SAN BERNARDINO")*(K5:K>5002)*(K5:K<10001),VLOOKUP(D5:D,ApprovalKey,4,0),
 IF((D5:D="SAN BERNARDINO")*(K5:K>10002),            VLOOKUP(D5:D,ApprovalKey,5,0),
 IF((D5:D="ATLANTA")       *(K5:K>1)   *(K5:K<1001), VLOOKUP(D5:D,ApprovalKey,2,0),
 IF((D5:D="ATLANTA")       *(K5:K>1002)*(K5:K<5001), VLOOKUP(D5:D,ApprovalKey,3,0),
 IF((D5:D="ATLANTA")       *(K5:K>5002)*(K5:K<10001),VLOOKUP(D5:D,ApprovalKey,4,0),
 IF((D5:D="ATLANTA")       *(K5:K>10002),            VLOOKUP(D5:D,ApprovalKey,5,0),
 IF((D5:D="BEDFORD PARK")  *(K5:K>1)   *(K5:K<1001), VLOOKUP(D5:D,ApprovalKey,2,0),
 IF((D5:D="BEDFORD PARK")  *(K5:K>1002)*(K5:K<5001), VLOOKUP(D5:D,ApprovalKey,3,0),
 IF((D5:D="BEDFORD PARK")  *(K5:K>5002)*(K5:K<10001),VLOOKUP(D5:D,ApprovalKey,4,0),
 IF((D5:D="BEDFORD PARK")  *(K5:K>10002),            VLOOKUP(D5:D,ApprovalKey,5,0),
 ))))))))))))))

0

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM