You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Power BI/Power Query中将d h m s格式时长转为秒数并自动计算

将时长字符串(如31d、1h30m)转换为总秒数

你已经通过多层SUBSTITUTE把时长字符串转换成了运算表达式,但这类字符串无法直接被DAX/Excel自动计算,以下是两种可行的解决方案:

方案1:Power BI(DAX)直接计算

直接拆分时长字符串中的天、时、分、秒数值,分别转换为秒后累加:

inSEC = 
VAR DownText = Report[Down]
// 提取天数对应的秒数
VAR Days = IF(SEARCH("d", DownText, 1, 0) > 0, VALUE(LEFT(DownText, SEARCH("d", DownText)-1)) * 86400, 0)
// 提取小时对应的秒数
VAR Hours = 
    VAR HourPos = SEARCH("h", DownText, 1, 0)
    VAR StartPos = IFERROR(SEARCH(" ", DownText, 1, 0) + 1, 1)
    RETURN IF(HourPos > 0, VALUE(MID(DownText, StartPos, HourPos - StartPos)) * 3600, 0)
// 提取分钟对应的秒数
VAR Minutes = 
    VAR MinPos = SEARCH("m", DownText, 1, 0)
    VAR PrevSpacePos = IFERROR(SEARCH(" ", DownText, SEARCH("h", DownText, 1, 0)), IFERROR(SEARCH(" ", DownText, 1, 0), 0))
    VAR StartPos = PrevSpacePos + 1
    RETURN IF(MinPos > 0, VALUE(MID(DownText, StartPos, MinPos - StartPos)) * 60, 0)
// 提取秒数
VAR Seconds = 
    VAR SecPos = SEARCH("s", DownText, 1, 0)
    VAR PrevSpacePos = IFERROR(SEARCH(" ", DownText, SEARCH("m", DownText, 1, 0)), IFERROR(SEARCH(" ", DownText, SEARCH("h", DownText, 1, 0)), IFERROR(SEARCH(" ", DownText, 1, 0), 0)))
    VAR StartPos = PrevSpacePos + 1
    RETURN IF(SecPos > 0, VALUE(MID(DownText, StartPos, SecPos - StartPos)) * 1, 0)
RETURN
Days + Hours + Minutes + Seconds

这个公式会自动识别字符串中的d/h/m/s单位,提取对应数值并转换为秒后求和,比如31d会计算为2678400秒,1h30m会计算为5400秒。

方案2:Excel中执行运算表达式

如果你使用Excel,除了类似的拆分计算方式,还可以利用EVALUATE函数执行你生成的运算表达式:

  1. 先在B列用你的SUBSTITUTE公式生成运算表达式:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"d","*86400"),"h","*3600"),"m","*60"),"s","*1")," ","+")
  1. 点击「公式」选项卡 → 「名称管理器」,新建名称(比如CalculateSeconds),在「引用位置」输入:
=EVALUATE(Sheet1!B2)
  1. 在C2单元格输入=CalculateSeconds,下拉填充即可得到总秒数。

也可以直接用拆分求和公式,无需生成表达式:

=SUM(IFERROR(VALUE(LEFT(TEXTSPLIT(A2," "),LEN(TEXTSPLIT(A2," "))-1))*XLOOKUP(RIGHT(TEXTSPLIT(A2," "),1),{"d","h","m","s"},{86400,3600,60,1}),0))

内容的提问来源于stack exchange,提问作者kucluk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 04:45:35