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 中的逻辑运算符的主要内容,如果未能解决你的问题,请参考以下文章

怎么在excel里设置逻辑公式,让填入的数值,自动生成

Excel教程(10) - 逻辑运算符

ARRAYFORMULA 中的 Google 表格 AVERAGE 函数

带有 ARRAYFORMULA 的 MAXIFS 在 Google 表格中不起作用

Excel基本功能

EXCEL中如何求并集