【问题标题】:Excel: logical operators in ARRAYFORMULAExcel: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 中都观察到了这种行为。 这是语法问题吗?

【问题讨论】:

    标签: google-sheets array-formulas


    【解决方案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)))}
    

    【讨论】:

    • 哈哈刚刚想通了,但你打败了我! :) 谢谢!
    猜你喜欢
    • 2020-12-20
    • 1970-01-01
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 2011-09-23
    相关资源
    最近更新 更多