Excel: ARRAYFORMULA 中的逻辑运算符

Excel: logical operators in ARRAYFORMULA

这是我拥有的完整解决方案:

=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,其中除了带有青色 header 的列之外的所有列都是使用 array-formulae.

生成的

注意:

观察:

在 google 工作表和 Microsoft excel 上都观察到了这种行为。 这是语法问题吗?

使用:

={"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)))}