数组公式如果和

And*_*ndy 2 google-sheets array-formulas

我正在尝试将数组公式应用于我的一张工作表,但它不起作用 - 公式本身有效,但它并未应用于所有单元格(继续位)

这是我的公式。

if(H2-F2<14,1,if(and(H2-F2>14,H2-F2<168),14,if(H2-F2>168,42,"")))
Run Code Online (Sandbox Code Playgroud)

当我添加数组公式时

=ARRAYFORMULA(
  if(H2-F2<14,1,
    if(and(H2-F2>14,H2-F2<168),14,
      if(H2-F2>168,42,"")
    )
   )
)
Run Code Online (Sandbox Code Playgroud)

它有效但不适用于所有单元格,为什么会这样,我该如何使其工作?

编辑:带有单元格范围的新公式

=ARRAYFORMULA(
  if(H2:H-F2:F<14,1,
    if(and(H2:H-F2:F>14,H2:H-F2:F<168),14,
      if(H2:H-F2:F>168,42,"")
    )
  )
)
Run Code Online (Sandbox Code Playgroud)

Elm*_*Elm 5

我不确定为什么它也不起作用,但解决方法是将“and”语句中的每个条件分解为单独的嵌套“if”语句。所以如果你有三个条件,你最终会得到三个 if 语句,一个嵌套在另一个中:

if(condition_1, if(condition_2, if(condition_3,then X,else Y),else Y),else Y)

它等价于 if + 和语句