【问题标题】:Dates between dates in a column?列中日期之间的日期?
【发布时间】:2018-02-17 00:12:32
【问题描述】:

我正在跟踪一家公司的“上班”天数。

我有一个谷歌表格,人们可以用它来输入他们的一天。每个条目都会生成一行,我希望在它们连续工作 5/6/7 天时标记行集。

连续5个是“接近” 6是“最大化” 7是违规

所以我们会说它看起来有点像这样......

[Date]   [Start]  [End]  [Activity]    
1/1/2018    9am    5pm   office stuff    
2/1/2018    9am    5pm   more office stuff    
3/1/2018    9am    5pm   still doing office stuff

当它连续 5 天时,我会将该行的背景颜色更改为黄色......等等。

日期比较器似乎是为了比较两列,而不是连续列。谷歌不允许我将函数放入表单提交中(出于明显的原因),但我可以从一个标题单元格中比较提交的单元格......只是不是连续的(与相比之下相当微不足道的列相反)

【问题讨论】:

    标签: google-sheets formulas


    【解决方案1】:

    将此作为自定义公式尝试

    =sumproduct(countif(A:A,row(indirect(A2&":"&A2-4)))>0)=5
    

    它表示从当前日期到之前的四天(包括五天),每天必须至少有一个实例。

    所以如果当前日期是 17/2/18

    此人必须在 13/2/18、14/2/18、15/2/18 和 16/2/18 工作才能触发规则。

    那么你需要将规则重复 6 天和 7 天

    =sumproduct(countif(A:A,row(indirect(A2&":"&A2-5)))>0)=6
    

    =sumproduct(countif(A:A,row(indirect(A2&":"&A2-6)))>0)=7
    

    必须先应用最后一条规则

    注意

    如果 > 比较的逻辑结果被强制转换为数字,这些也可以在 Excel 中工作

    =SUMPRODUCT(--(COUNTIF(A:A,ROW(INDIRECT(A2&":"&A2-4)))>0))=5
    

    等等

    =AND(COUNTIF(A:A,ROW(INDIRECT(A2&":"&A2-4))))
    

    可能是在 Excel 中执行此操作的最短方法,但必须在 Google 表格中作为数组公式进行包装。

    【讨论】:

    • 谢谢汤姆!我回家后会试一试。
    • 谢谢汤姆......我只是想明白这个......似乎这些功能存在于每一行?我正在通过谷歌表格表单添加行,所以不幸的是我不能在行本身上有函数,而必须在外部评估它们。目前,我必须通过一个外部脚本来运行。
    • 花了一段时间才意识到您正在谈论在整个列上放置条件格式...我不知道您可以这样做...非常方便。我在列上运行了一个脚本来计算此刻的天数,但我可能会换成你的风格,因为它看起来更有效率。再次感谢。
    • 很高兴它对你有用。您可以根据设置规则时选择的范围在尽可能多的列上设置条件格式。
    • 是的,伙计。通过这种方式,它有点像 for 循环。很方便。我的挑战是我正在处理 Web-Form 提交的行,所以我不能手动选择任何东西......但是选择整行包括所有未来的行,所以它可以工作。
    猜你喜欢
    • 2014-04-19
    • 2013-01-31
    • 1970-01-01
    • 2010-09-21
    • 2018-04-30
    • 2014-11-22
    • 1970-01-01
    • 2010-10-05
    • 2023-03-30
    相关资源
    最近更新 更多