【问题标题】:Can this formula be used in an ARRAYFORMULA in Google Sheets?这个公式可以在 Google 表格中的 ARRAYFORMULA 中使用吗?
【发布时间】:2020-04-09 07:04:41
【问题描述】:

我有一个公式,我一直在尝试将其转换为 ARRAYFORMULA,但没有成功。由于公式(如下)它工作得很好,但是当我转换为 ARRAYFORMULA 时,它显示为空白(因为我要求公式在不满足任何条件时显示“”。

这是非数组公式:

    =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),"")))))))))))))

这是我尝试的数组:

    =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),"")))))))))))))

我只是不允许以这种方式使用数组公式吗?

【问题讨论】:

    标签: if-statement google-sheets google-sheets-formula array-formulas gs-vlookup


    【解决方案1】:

    当然,试试:

    =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),
     ))))))))))))))
    

    【讨论】:

    • 感谢您这么快发表评论!该公式应该识别位置和成本参数,并使用它搜索要返回的适当电子邮件地址的密钥。您提供的公式给了我一个空白返回(单元格中没有任何内容),而不是返回电子邮件地址。这是工作表的副本以供参考docs.google.com/spreadsheets/d/…
    • 这个公式是为第 5 行制定的。你把它放在第 2 行,这就是你得到空白单元格的原因。检查你的工作表,我把它修好了
    • 天哪,我怎么会错过这个。是的,你是对的,这非常有效!谢谢!
    猜你喜欢
    • 2017-09-28
    • 2022-08-03
    • 2020-03-02
    • 2021-07-23
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多