数组公式中的嵌套 if 函数

Posted

技术标签:

【中文标题】数组公式中的嵌套 if 函数【英文标题】:Nested if functions in arrayformula 【发布时间】:2022-01-12 14:05:54 【问题描述】:

我在 Google 表格中有这个公式 (1):

=IF($A2="","",IF(AND(($G2 <= EOMONTH(TODAY(),-5)),($G2 <> ""),OR($H2 > EOMONTH(TODAY(),-5),$H2 = ""),OR($E2 > EOMONTH(TODAY(),-5),$E2 = "")),1,0))

我想将其转换为数组公式。我尝试了这个公式 (2),但出现“#N/A 不匹配”错误:

=ARRAYFORMULA ( 
    IFs (
        ROW(A:A) = 1, "Contract Published, " & TEXT(EDATE(TODAY(),-5),"mmm-YY"),
        IF(AND((G:G <= EOMONTH(TODAY(),-5)),(G:G <> ""),OR(H:H > EOMONTH(TODAY(),-5),H:H = ""),OR(E:E > EOMONTH(TODAY(),-5),E:E = "")),1,0),)
)

我也试过这个公式(3),但是得到一个“公式解析错误”

=ARRAYFORMULA ( 
        IF(ROW(A:A) = 1, "Contract Published, " & TEXT(EDATE(TODAY(),-5),"mmm-YY")),
        IF((G:G <= EOMONTH(TODAY(),-5),G:G <> ""),
        IF((H:H > EOMONTH(TODAY(),-5),H:H = ""), 
        IF((E:E > EOMONTH(TODAY(),-5),E:E = "")),1,0)))

有谁知道我做错了什么,或者我如何将公式 (1) 转换为 Arrayformula?

【问题讨论】:

公式(1)是否如您所愿?这似乎不连贯。可能是=IF($A2="","",IF(AND( OR($G2 &lt;= EOMONTH(TODAY(),-5),($G2 &lt;&gt; ""), OR($H2 &gt; EOMONTH(TODAY(),-5),$H2 = ""), OR($E2 &gt; EOMONTH(TODAY(),-5),$E2 = "") )),1,0)) ? 是的,公式 (1) 工作正常,但我试图将其更改为数组公式,因此当将新数据添加到工作表时,它们会自动计算。 你能提供一个电子表格吗? 【参考方案1】:

在第 2 行尝试:

=ARRAYFORMULA(IF(A2:A="",,
 IF(((G2:G <= EOMONTH(TODAY(), -5))* 
     (G2:G <> "")*
     ((H2:H > EOMONTH(TODAY(), -5)) + (H2:H = ""))*
     ((E2:E > EOMONTH(TODAY(), -5)) + (E2:E = ""))), 1, 0)))

【讨论】:

这成功了!谢谢!

以上是关于数组公式中的嵌套 if 函数的主要内容,如果未能解决你的问题,请参考以下文章

countif 函数怎么嵌套其他函数来作为计数条件?比如len来判定长度?

Excel 中的 MIN IF 和 MAX IF 返回 #VALUE 错误,即使是数组公式

谷歌表格中带有 ifs、isblank 和 AND/OR 的数组公式

mongoose 怎么插入嵌套数组

excel中的if嵌套和ifs哪个计算起来更快?

同一公式中的查询,数组和排序函数