如何在Google表格中使用ArrayFormula,具有多个IF条件?

时间:2016-03-17 00:18:27

标签: google-sheets array-formulas

所以我刚刚发现了有关ArrayFormula的信息,并试图将我的电子表格转换为使用它,以提高效率。它在我的所有专栏上都精彩地工作,除了一个,这给我带来了麻烦。

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

=IF(C2="Immediate",
  D2+1,
  IF(C2="3 Day",
    WORKDAY(D2,3,Holidays!$B$2:$B$11),
    IF(C2="5 Day",
      WORKDAY(D2,5,Holidays!$B$2:$B$11),
      IF(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

4 个答案:

答案 0 :(得分:1)

在工作表的第1行某处尝试此公式:

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

答案 1 :(得分: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 :(得分:0)

你可以使用那个公式

<span ng-click="vm.onClickBtn();$event.stopPropagation()">
   <i class="fa fa-chevron-left fa-2x"></i>
</span>

Demo here

答案 3 :(得分:0)

您的第一个公式,扩展为数组,对我来说效果很好

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