【问题标题】:VBA for Excel Time round off to upper 10 min valueVBA for Excel 时间四舍五入到上 10 分钟值
【发布时间】:2020-11-05 18:32:40
【问题描述】:

我有来自文件的时间值,格式为:DD/MM/YYYY HH:MM:SS 我需要将分钟值四舍五入到接下来的 10 分钟数据,例如:

16/07/2020 10:01:01  -->  16/07/2020 10:10
16/07/2020 10:13:45  -->  16/07/2020 10:20
16/07/2020 10:27:12  -->  16/07/2020 10:30
16/07/2020 10:53:14  -->  16/07/2020 11:00

我使用了工作表函数 MRound,但将值获取到最近的 10 分钟数据而不是下一个 10 分钟数据,如图所示:

Excel.WorksheetFunction.MRound(value, "00:10") -->
16/07/2020 10:01:01  -->  16/07/2020 10:00
16/07/2020 10:13:45  -->  16/07/2020 10:10
16/07/2020 10:27:12  -->  16/07/2020 10:30
16/07/2020 10:53:14  -->  16/07/2020 10:50

如何将分钟值四舍五入到下一个 10 分钟?我看到了 CEILING 函数,但如何使用它来获取所需格式的时间值?

【问题讨论】:

    标签: excel vba rounding ceil


    【解决方案1】:

    由于在 Excel 中时间只是一个给定的数字(天是整数,时间是小数部分),您可以使用:

    =CEILING(A1,1/144)
    

    使用的数字格式显然是'd-m-yyyy hh:mm:ss'

    【讨论】:

    • 我可以知道如何将 1/144 转换为下一个 10 分钟的数据,我们如何将这个值更改为下一个值,比如下一个 15 分钟?
    • 144 派生自 (1/24)/6。结果数字相当于十分钟。我想如果你希望它是 15 分钟,你会使用 (1/24)/4
    猜你喜欢
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-24
    相关资源
    最近更新 更多