Excel:ARRAYFORMULA 中的逻辑运算符
Posted
技术标签:
【中文标题】Excel:ARRAYFORMULA 中的逻辑运算符【英文标题】:Excel: logical operators in ARRAYFORMULA 【发布时间】:2022-01-20 01:01:50 【问题描述】: 我正在尝试定义一个函数来计算某个日期所在的纳税年度。 我想使用数组公式来执行此操作并让它自动生成这是我拥有的完整解决方案:
=ARRAYFORMULA(
IF(
ROW(A:A)=1,
"Tax year",
IF(
ISBLANK(A:A),
"",
IF(
OR(MONTH(A:A)>4, AND(MONTH(A:A)=4, DAY(A:A)>=6)),
YEAR(A:A)&"-"& YEAR(A:A)+1,
YEAR(A:A)-1 &"-"&YEAR(A:A)
)
)
)
)
但我注意到它的行为不像我期望的那样。所以我试着把它分解成更小的步骤。这是一个spreadsheet demo,其中除了带有青色标题的列之外的所有列都是使用数组公式生成的。
注意:
演示具有欧洲日期格式。 这是为了计算英国的纳税日期,从 4 月 6 日开始,因此是围绕该特定日期的逻辑。观察:
AND 函数的行为异常,如 F 列所示,即标题M=4&D>=6
。
OR 函数行为异常,如 H 列所示,即标题 M>4 or M=4&D>=6
。
在 google sheet 和 microsoft excel 中都观察到了这种行为。 这是语法问题吗?
【问题讨论】:
【参考方案1】:使用:
="Tax year"; ARRAYFORMULA(IF(ISBLANK(A2:A),,
IF((MONTH(A2:A)>4)+((MONTH(A2:A)=4)*(DAY(A2:A)>=6))),
YEAR(A2:A)&"-"& YEAR(A2:A)+1,
YEAR(A2:A)-1 &"-"&YEAR(A2:A)))
【讨论】:
哈哈刚刚想通了,但你打败了我! :) 谢谢!以上是关于Excel:ARRAYFORMULA 中的逻辑运算符的主要内容,如果未能解决你的问题,请参考以下文章
ARRAYFORMULA 中的 Google 表格 AVERAGE 函数