【问题标题】:How to use ArrayFormula in Google Sheets, with multiple IF conditions?如何在具有多个 IF 条件的 Google 表格中使用 ArrayFormula?
【发布时间】:2016-03-17 00:18:27
【问题描述】:

所以我刚刚发现了 ArrayFormula 并正在尝试转换我的电子表格以使用它,以提高效率。它在我所有的专栏上都表现出色,除了一个给我带来麻烦的专栏。

目前,我有这个公式(并复制到每个单元格):

=IF(C2="立即", D2+1, IF(C2="3 天", 工作日(D2,3,假期!$B$2:$B$11), IF(C2="5 天", 工作日(D2,5,假期!$B$2:$B$11), 如果(ISBLANK(C2), IFERROR(1/0) ) ) ) )

根据我在另一列中的下拉菜单计算日期非常有用。我不知道如何将其转换为使用 ArrayFormula,因为我在添加第二个 IF 语句后立即收到错误消息。

我可以得到第一个使用这个公式的语句:

=ARRAYFORMULA(IF(C2:C="Immediate",D2:D+1,))

但是,当我尝试添加第二个 IF 语句(例如使用下面的公式)时,我得到一个错误。

我该怎么做?我想它可能很简单,但我想不通!

我试图使用一个更简单的公式来找出我哪里出错了,下面的公式也会发生同样的事情,所以我显然做错了什么!

=ARRAYFORMULA(IF(A1:A=1,"Hello",),IF(A1:A=2,"Goodbye",))

仅使用第一个 IF 语句,它就可以工作。只要我添加第二个,我就会得到#N/A

【问题讨论】:

    标签: google-sheets array-formulas


    【解决方案1】:

    我知道这很旧,但不妨试试这个公式:

    ={"Header_Cell_Name_Here";
      ArrayFormula(
        IFS(
          $C$2:$C="","",
          $C$2:$C="Immediate", $D$2:$D + 1,
          $C$2:$C="3 Day", WORKDAY($D$2:$D,3,Holidays!$B$2:$B$11),
          $C$2:$C="5 Day", WORKDAY($D$2:$D,5,Holidays!$B$2:$B$11)
        )
      )
    }
    

    IFS 是 IF 的绝佳替代品。而不是像使用 IF 语句那样采用三个参数:

    IF(logical_expression, value_if_true, value_if_false)
    

    一个 IFS 语句可以处理任意数量的条件:

    IFS(condition1, value1, [condition2, ...], [value2, ...])
    

    【讨论】:

      【解决方案2】:

      在工作表第 1 行的某处试试这个公式:

      =ARRAYFORMULA(IF(A:A="",,IF(A:A=1,"Hello",IF(A:A=2,"Goodbye","Other Result"))))

      【讨论】:

        【解决方案3】:

        你可以使用那个公式

        =ArrayFormula(IF(C2:C="",IFERROR(1/0),IF(C2:C="Immediate",D2:D+1,IF(C2:C="3 Day",WORKDAY(D2:D,3,Holidays!$B$2:$B$11),IF(C2:C="5 Day",WORKDAY(D2:D,5,Holidays!$B$2:$B$11),IF(ISBLANK(C2:C),IFERROR(1/0)))))))
        

        here is an example

        【讨论】:

          【解决方案4】:

          你的第一个公式,扩展到数组,非常适合我

          =ARRAYFORMULA(IF(C2:C5="Immediate",
                           D2:D5+1,
                           IF(C2:C5="3 Day",
                              WORKDAY(D2:D5,3,Sheet2!$B$2:$B$11),
                              IF(C2:C5="5 Day",
                                 WORKDAY(D2:D5,5,Sheet2!$B$2:$B$11),
                                 IF(ISBLANK(C2:C5),
                                    IFERROR(1/0)
                                 )
                              )
                           )
                        )
           )
          

          【讨论】:

            【解决方案5】:

            这是我通常使用的多 if 条件的最佳数组公式

            AND 运算符

            =Arrayformula(if(isblank(A2:A),,if((condition1) * (condition2) * (condition3),statement, if((condition1) * (condition2) * (condition3), statement, ))))
            

            或运算符

            =Arrayformula(if(isblank(A2:A),,if((condition1) + (condition2) + (condition3),statement, if((condition1) + (condition2) + (condition3), statement, ))))
            

            例子:

            =Arrayformula(if(isblank(A2:A),,IF(((F2:F="Completed") * (J2:J <= 50)), $AT$3, IF(((F2:F="Completed") * (J2:J > 50) * (J2:J < 150)), $AT$4, IF(((F2:F="Completed") * (J2:J>150) * (J2:J < 250)), $AT$5, IF(((F2:F="Not_loaded") * (J2:J = 0)), $AT$6, 0))))))
            

            请注意,需要大括号才能正常工作。

            【讨论】:

              猜你喜欢
              • 2023-01-11
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-11-15
              • 2021-12-01
              • 1970-01-01
              • 2020-05-11
              • 2021-02-25
              相关资源
              最近更新 更多