数组公式中的嵌套 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 <= EOMONTH(TODAY(),-5),($G2 <> ""), OR($H2 > EOMONTH(TODAY(),-5),$H2 = ""), OR($E2 > 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 错误,即使是数组公式