从数字/文本列计算秒,表示时间(以小时/分钟/秒为单位)

问题描述 投票:0回答:2

在 Power Query 中我有一个列,例如看起来像这样

9小时8分4秒

这意味着 9 小时 8 分 4 秒。现在的挑战是我想将列中的这个值转换为小时、分钟和秒的总和,实际上等于 32884 秒。

以及有关如何在 PowerQuery for Power Bi 中将其转换的想法?

powerbi powerquery powerbi-desktop data-cleaning m
2个回答
2
投票
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WssywyDUpVoqNBQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom",
    each let
        h = Number.FromText(Text.BeforeDelimiter([Column1],"h")),
        m = Number.FromText(Text.BetweenDelimiters([Column1],"h","m")),
        s = Number.FromText(Text.BetweenDelimiters([Column1],"m","s"))
    in (h*60*60)+(m*60)+s)
in
    #"Added Custom"


1
投票

用分隔符“h”、“m”和“s”拆分该列,然后将分钟乘以 60、小时乘以 3600 将它们合并为一个新列。

let
    Source = Table.FromValue("9h8m4s"),
    #"Added Custom1" = Table.AddColumn(
        Source, "Seconds", each 
        Number.FromText(Text.BeforeDelimiter([Value],"h")) * 3600 
        + Number.FromText(Text.BetweenDelimiters([Value], "h", "m")) * 60 
        + Number.FromText(Text.BetweenDelimiters([Value], "m", "s"))
    ),
    #"Changed Type" = Table.TransformColumnTypes(
        #"Added Custom1",{{"Seconds", type number}})
in
    #"Changed Type"

© www.soinside.com 2019 - 2024. All rights reserved.