如何在Power Query中实现时间的5分钟向下/向上取整?
Power Query中实现时间的5分钟向下/向上取整
向下取整到最近5分钟(等效Excel FLOOR(A1,"00:05"))
假设你的时间列名为TimeColumn,添加自定义列时使用以下M语言公式:
= Time.From(Number.RoundDown(Time.TotalMinutes([TimeColumn])/5)*5/1440)
逻辑说明:
Time.TotalMinutes([TimeColumn]):将时间转换为当天的总分钟数(比如8:24会转为504)- 除以5后用
Number.RoundDown向下取整(504/5=100.8,向下取整为100) - 乘以5得到取整后的总分钟数(100*5=500,对应8:20)
- 除以1440(一天的总分钟数)后用
Time.From转回时间格式
向上取整到最近5分钟(等效Excel CEILING(A1,"00:05"))
同样基于分钟数转换,替换为Number.RoundUp即可,公式如下:
= Time.From(Number.RoundUp(Time.TotalMinutes([TimeColumn])/5)*5/1440)
逻辑说明:
- 以15:34为例,
Time.TotalMinutes得到934,除以5得186.8,Number.RoundUp向上取整为187 - 187*5=935,对应15:35,和Excel的CEILING行为一致
- 如果时间刚好是5分钟的整数倍,公式会保留原时间
内容的提问来源于stack exchange,提问作者plm
相关产品推荐
相关产品推荐

