【问题标题】:Array Formula (return number of leave days taken if dates across multiple months) not working properly数组公式(如果日期跨多个月,则返回休假天数)无法正常工作
【发布时间】:2019-05-20 07:17:57
【问题描述】:

我的数组公式不能完全按照我的意愿工作。

当休假日期在同一个月并且月份 = 当前月份时,我的公式不返回正确的值(返回 FALSE)

公式应该检查这些条件:

  • 上校。 E = 年假
  • 上校。 J = 完成

并根据以下条件返回员工每个月的休假天数: (假设当月 = 2019 年 2 月)

a) IF Col. O = 是 AND 当前月份 = 离开结束日期(意味着开始日期和结束日期在同一个月 = 当前月份) THEN 返回休假天数

b) IF Col. P = Yes(休假日期从一个月开始,到另一个月结束)

(i) IF 当前月份 = 休假开始日期 THEN 返回休假开始日期和开始日期月份结束之间的天数

(ii) IF 当前月份 = 休假结束日期 THEN 返回总天数 (Col. H) 减去休假开始日期和开始日期月份结束之间的天数

=ArrayFormula(iferror(if(($J$2:$J<>"Complete")*($E$2:$E<>"Annual Leave"),"",if($P$2:$P="yes",if(month($F$2:$F)=month(R$1),NETWORKDAYS.INTL($F$2:$F,EOMONTH($F$2:$F,0),1,Holidays!$B$2:$B),if(month($G$2:$G)=month(R$1),$H$2:$H-NETWORKDAYS.INTL($F$2:$F,EOMONTH($F$2:$F,0),1,Holidays!$B$2:$B),if(month($G$2:$G)=month(R$1),if($O$2:$O="Yes",$H$2:$H,0)))))),"x"))

当休假日期在同一个月并且月份 = 当前月份时,我的公式不返回正确的值(返回 FALSE)

所有其他条件都OK(即如果为True,则所有其他条件都正确执行并显示除上述条件之外的正确值)

链接到google sheet

【问题讨论】:

  • 为澄清起见,Google 工作表是链接到 Google 表单的实时工作表。每当收到新的响应时,公式都需要自行更新
  • 添加了指向 Google 表格的链接
  • @player0 不,我需要的是让公式正常工作......

标签: google-sheets array-formulas google-sheets-formula


【解决方案1】:

我已经做了一些更多的研究 - 并且还根据建议 - 我已经设法解决了这个问题。

这是工作公式:

=ArrayFormula(iferror(if((($J$2:$J="Complete")*($E$2:$E="Annual Leave")),
IF($P$2:$P="Yes",
IF(month($F$2:$F)=month(R$1),NETWORKDAYS.INTL($F$2:$F,EOMONTH($F$2:$F,0),1,Holidays!$B$2:$B),
IF(month($G$2:$G)=month(R$1),$H$2:$H-NETWORKDAYS.INTL($F$2:$F,EOMONTH($F$2:$F,0),1,Holidays!$B$2:$B),
IF(month($G$2:$G)=month(R$1)))),
IF((($O$2:$O="Yes")*(month($F$2:$F)=month(R$1))),$H$2:$H,"")),""),""))

【讨论】:

    【解决方案2】:

    您有 3 个不完整的 IF,它们返回错误...

    =ARRAYFORMULA(IFERROR(
     IF(($J$2:$J="Complete")*($E$2:$E="Annual Leave"),
     IF($P$2:$P="yes",
     IF(MONTH($F$2:$F)=MONTH(S$1), NETWORKDAYS.INTL($F$2:$F, EOMONTH($F$2:$F, 0), 1, Holidays!$B$2:$B),
     IF(MONTH($G$2:$G)=MONTH(S$1), $H$2:$H-NETWORKDAYS.INTL($F$2:$F, EOMONTH($F$2:$F, 0), 1, Holidays!$B$2:$B),
     IF(MONTH($G$2:$G)=MONTH(S$1),
     IF($O$2:$O="Yes", $H$2:$H, 0), ))), ), ), ))
    

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 2021-12-18
      • 2019-09-06
      • 2020-01-30
      • 2017-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-02
      相关资源
      最近更新 更多