【问题标题】:Subtract two dates and times, and find if the later value exceeds 2 hours减去两个日期和时间,看看后面的值是否超过 2 小时
【发布时间】:2019-06-26 21:56:40
【问题描述】:

写谷歌表格,需要公式计算两个日期和时间,判断后面的值是否超过2小时零一天。

IE,

In - Out
1/1/19 2:00 - 1/1/19 3:59
1/1/19 2:00 - 1/1/19 4:00
1/1/19 2:00 - 1/1/19 4:01
1/1/19 2:00 - 1/2/19 3:59
1/1/19 2:00 - 1/2/19 4:00
1/1/19 2:00 - 1/2/19 4:01 

这是我现在使用的公式

=IFERROR(
  ARRAYFORMULA(
  IF(ISBLANK($S3:$S),,
    FLOOR(
     IF(VALUE(TIME(HOUR($S3:$S),MINUTE($S3:$S),1)-TIME(HOUR($R3:$R),MINUTE($R3:$R),0))*24>2.01,
      ($S3:$S-$R3:$R)+1,
      ($S3:$S-$R3:$R)+1),1)
    )))

“R”在里面,“S”在外面。 目前,我无法排除第一天超过 2 小时的限制,同时试图让它在每隔一天正常工作。

因此,在上面的示例中,理想情况下,除了最后一天(2019 年 1 月 2 日 4:01)之外,每一行都应作为“1”返回 1 天。 我正在运行的场景是,一个人可以租一天的东西,并且有 2 个小时的溢出时间,而不会因为迟到而被标记为额外的一天。 目前,它会将最后 4 行示例计算为 2 天。

我试图格式化公式以包含 Date(Year(),Month(),Day()。但是,我遇到了很多解析错误,无法解决这个问题。

【问题讨论】:

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


    【解决方案1】:
    =ARRAYFORMULA(IF(LEN(S2:S), 
     IF((DATEVALUE(S2:S)+TIMEVALUE(S2:S))-
        (DATEVALUE(R2:R)+TIMEVALUE(R2:R))<=31.0833333333285, 1, 
     QUOTIENT((DATEVALUE(S2:S)+TIMEVALUE(S2:S))-
              (DATEVALUE(R2:R)+TIMEVALUE(R2:R))-31.0833333333285, 28)+2), ))
    

    【讨论】:

    • 我遇到了一个问题,我必须将我的进出时间格式化为军事时间。然后在解决了这个问题之后,它除了'1'什么都不会做。
    • 好吧,在内部单元格格式中将您的军事时间设置为自定义时间和日期
    • i.imgur.com/kqfxPMc.png 我希望我能说更多。我以前从未使用过“Len”或 Quotient,所以语法超出了我的范围。我正在阅读他们的文档 rn。
    • i.imgur.com/3IeEWcF.png 最后一张图片甚至没有超过“1”天的内容。但是我的整张纸都变成了 1,所以我知道出了点问题,哈哈,我的天。
    【解决方案2】:
    =IFERROR(
      ARRAYFORMULA(
        IF(ISBLANK(T3:T),,
            FLOOR(     
                IF(DATEVALUE($Q2:Q)+TIMEVALUE($R2:R)-DATEVALUE($N2:N)+TIMEVALUE($O2:O)>1,
                    IF(R2:R-O2:O>0.08263888889,(T2:T-S2:S)+2,(T2:T-S2:S)+1),
                    (T2:T-S2:S)+1)
            ,1
                )
            )
        )
    
    

    这似乎是我可以让它工作的最佳方式。 我必须嵌套一个 IF 语句,这样我就可以删掉第一天的问题。 那个奇怪的 0.08 是据说与 2 小时的经过的差异。

    我真的不明白 Player0 给我的答案。 我的情况有3个不同的症结。 如果超过 2 小时的差异,第一天不能添加 +2。 隔天可以。 他的奇怪数字是 31.08,所以也许他的比例是几个月之类的。 我无法让它工作,它只会返回一个'1'。当我分解商数并摆弄它时,大多数情况下每个答案都是 0。 如果这个新公式中缺少某些东西。我很想得到一些意见。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多