【问题标题】:Cumulative count of working days with conditions (multiple employees) in Google SheetsGoogle 表格中具有条件(多名员工)的工作日累积计数
【发布时间】:2021-02-12 05:13:28
【问题描述】:

伙计们,

我有以下问题:我有四名员工的日程安排,我需要计算他们连续工作了多少天。

文件在谷歌表格中,这里是链接,如果有人想复制数据并尝试一下:https://docs.google.com/spreadsheets/d/1TUJr9skcXQDtGEV36JVHMGgiLzPlCiEgaPqJ5ZazfFI/edit?usp=sharing

这是文档的片段:

在描述中,列 A、B 和 C 包含日期、人员姓名及其日程安排(“关闭”表示他/她不工作的日子)。这是原始数据。

如果此人处于关闭状态,Col D 将转换为 0,如果此人正在工作,则转换为 1。

Col E 是我可以在其上进行更改的列,在安排人员时让他们下班,反之亦然。 (具有 2 个值的数据验证列)。

如果此人处于关闭状态,则 Col F 将转换为 0,如果此人在我更改后正在工作,则转换为 1。

在 Col GI 中使用公式 =IF(F2=0,0,SUMIFS(F$2:F,B$2:B,B2,A$2:A,"

我需要的是在零后重新启动的数字(col H,我已经手动填写了)。

这是一个有 4 名员工的示例数据,但我的原始数据超过 300 人。

我对脚本的使用也不是很熟练,所以我更愿意成为一个公式。

任何帮助将不胜感激!

附:如果有人可以建议更好地显示我的数据以及如何实现它,我将非常感激!

【问题讨论】:

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


    【解决方案1】:

    这只是一个下拉公式:恐怕到目前为止还没有自动扩展公式:

    =ArrayFormula(if(F2=0,0,
    countifs(F$2:F2,1,B$2:B2,B2)-
    countifs(F$1:F1,1,B$1:B1,B2,row(A$1:A1),"<"&iferror(vlookup(row(B2),if((B$1:B1=B2)*(F$1:F1=0),row(B$1:B1)),1),0))))
    

    在(比如)I2 中。

    编辑

    这样会简单一些:

    =ArrayFormula(if(F2=0,0,
    countifs(F$2:F2,1,B$2:B2,B2)-
    countifs(F$1:F1,1,B$1:B1,B2,row(A$1:A1),"<"&max(if((B$1:B1=B2)*(F$1:F1=0),row(B$1:B1))))))
    

    【讨论】:

      【解决方案2】:

      SUMPRODUCT 的另一个选项:

      =SUMPRODUCT((B2=$B$1:B2)*(ROW($B$1:B2)>IFERROR(LOOKUP(9^9,ROW($B$1:B2)/((B2=$B$1:B2)*(0=$F$1:F2))),1)))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-03
        • 1970-01-01
        • 2020-08-12
        • 1970-01-01
        • 2021-11-01
        • 1970-01-01
        相关资源
        最近更新 更多