Google Sheet ARRAYFORMULA(IF(ISBLANK 返回错误)

时间:2021-06-24 20:13:04

标签: if-statement google-sheets array-formulas

我正在更新我的数组公式,但更新后的公式出错了。

原始公式: =ARRAYFORMULA(IF(TODAY()>O2:O,"Past due",IF(TODAY()<O2:O-7,"Upcoming due date","Due this week")))

更新公式: =ARRAYFORMULA(IF(ISBLANK(O2:O),"Not Started",IF(I2:I="Delivered","Delivered",IF(((TODAY()>O2:O)*(I2:I<>)已送达,“逾期”,IF(TODAY()

我想让这个公式做的是:

  1. 如果 O 列为空,则显示文本“未开始”
  2. 如果 O 列不为空并且今天的日期大于 O 列 AND I 列不等于“已交付”,则显示文本“过期”
  3. 如果第一列是“已交付”,则显示文本“已交付”
  4. IF(TODAY()

我正在共享我的工作簿,URL 超链接可用。该公式将位于列 AE“到期周”中。需要和赞赏的帮助。

Google sheet

1 个答案:

答案 0 :(得分:0)

=ARRAYFORMULA(IF(ISBLANK(O2:O),"Not Started",IF(I2:I = "Delivered","Delivered",IF(TODAY()>O2:O,"Past due",IF(TODAY()<O2:O-7,"Upcoming due date","Due this week")))))

你的想法是对的。一旦你深入了解,你就会知道 I2:I 没有被交付,所以不应该需要三括号和与今天的乘法。另外,我认为你需要在“交付”周围引用<>“交付”。 * 应该有效,但用 AND 简化它帮助我将您的公式修正为

    =ARRAYFORMULA(IF(ISBLANK(O2:O),"Not Started",IF(I2:I="Delivered","Delivered",IF(AND(TODAY()>O2:O,I2:I<>"Delivered"),"Past
 due",IF(TODAY()<O2:O-7,"Upcoming due date","Due this week")))))

仍然没有必要,因为我们知道当我们处于那个深度时它不是“交付”的。