将时间间隔从文本转换为数字并按客户时间间隔分组
Posted
技术标签:
【中文标题】将时间间隔从文本转换为数字并按客户时间间隔分组【英文标题】:Convert time interval from text to number and grouping by customer time interval 【发布时间】:2021-09-30 02:34:34 【问题描述】:我有一些按一刻钟分组的数据,此列是文本格式。我想按客户时间间隔(例如每小时或早上 6 点至早上 9 点等)对数据进行分组。如何在 Power Query 编辑器中执行此操作以与 Power Pivot/Excel 一起使用?
谢谢!
【问题讨论】:
请提供足够的代码,以便其他人更好地理解或重现问题。 【参考方案1】:这应该可以让你大部分时间到达那里
右键单击并拆分 - 字符上的列
使用小时函数之类的方法转换所需的列并更改代码
= Table.TransformColumns(#"Changed Type1","Quarter Hour.2", Time.Hour, Int64.Type)
到
= Table.TransformColumns(#"Changed Type1","Quarter Hour.2", each Time.From(Number.Round(Number.From(Time.From(_))*(24*60/15))/(24*60/15)), type time)
四舍五入到最接近的所需分钟数,这里我使用最接近的 15 分钟
从那里只需使用下拉列表过滤所需的时间范围并分组您想要的任何内容
示例代码:
let Source = Excel.CurrentWorkbook()[Name="Table1"][Content],
#"Changed Type" = Table.TransformColumnTypes(Source,"Quarter Hour", type text),
#"Split Column by Delimiter" = Table.SplitColumn(#"Changed Type", "Quarter Hour", Splitter.SplitTextByDelimiter("-", QuoteStyle.Csv), "Quarter Hour.1", "Quarter Hour.2"),
#"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter","Quarter Hour.1", type time, "Quarter Hour.2", type time),
#"Extracted Hour" = Table.TransformColumns(#"Changed Type1","Quarter Hour.2",
each Time.From(Number.Round(Number.From(Time.From(_))*(24*60/15))/(24*60/15))
, type time)
in #"Extracted Hour"
【讨论】:
这对你有用吗?以上是关于将时间间隔从文本转换为数字并按客户时间间隔分组的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Oracle SQL 上进行查询以获取时间间隔,按特定字段分组
有没有办法从 min(date) 开始按 30 天的间隔对时间戳数据进行分组并将它们添加为列