【问题标题】:Calculate average from dates in text根据文本中的日期计算平均值
【发布时间】:2013-09-11 16:10:28
【问题描述】:

我正在使用这个公式:

=DATEDIF(B9,S9,"d") & " Days " & TEXT(S9-B9, "h:m") & " hrs:min"   
=DATEDIF(B10,S10,"d") & " Days " & TEXT(S10-B10, "h:m") & " hrs:min"

等等。

现在我需要一个公式来计算这些日期的平均值。问题是它们在文本中,而 excel 无法计算平均值。如果有任何输入,将不胜感激。谢谢

【问题讨论】:

    标签: excel date if-statement average datediff


    【解决方案1】:

    考虑以下几点:

    公式:

    • C2 = B2-A2
      (第 2 行到第 6 行相同)

    • C7 = AVERAGE(C2:C6)

    • D2 = INT(C2) & " Days " & TEXT(C2, "h:mm") & " hrs:min"
      (第 2 行到第 7 行相同)

    【讨论】:

    • 请注意,TEXT(C2,"d") 永远不会给出大于 31 的结果(因为它实际上显示的是月份中的某天而不是经过的天数),因此它不适合 32 的时间段天或更长 - 根据我的回答更好地使用 INT 函数
    • @barryhoudini - 出色的观察力。我更新了我的答案。谢谢!
    【解决方案2】:

    您的公式不是计算两个日期之间的天数和小时数的可靠方法。考虑 B9 是 2013 年 1 月 1 日 22:00,S9 是第二天 1 月 2 日 06:00 - 这两个“时间戳”之间只有 8 小时,但您的公式会给出结果

    1 Days 8:00 hrs:min

    最好使用这个版本

    =INT(S9-B9) & " Days " & TEXT(S9-B9, "h:m") & " hrs:min"

    这将在所有情况下给出正确的结果

    平均而言,您可以使用这样的公式

    =INT(AVERAGE(S9:S18)-AVERAGE(B9:B18)) & " Days " & TEXT(AVERAGE(S9:S18)-AVERAGE(B9:B18), "h:m") & " hrs:min"

    第 9 到 18 行有数据

    【讨论】:

    • 谢谢你们,这行得通!还有一个疑问,我如何显示例如 26 小时而不是 1 天 2:00 hrs:min ?谢谢
    • 你想为初始结果还是平均值?如果是前者,那么只需使用 =S9-B9 并将自定义格式设置为 [h]:mm - 确保包含方括号。对于 AVERAGE,使用 =AVERAGE(S9:S18)-AVERAGE(B9:B18) 并以相同的方式格式化
    猜你喜欢
    • 1970-01-01
    • 2020-06-05
    • 2021-12-29
    • 2016-02-24
    • 2023-03-18
    • 1970-01-01
    • 2020-07-04
    • 2018-08-26
    • 2022-01-14
    相关资源
    最近更新 更多