0

我正在使用 PowerQuery 创建某个日期持续时间列。我有以下 xlsx 表:

表格1

日期时间1:=A2+B2

日期时间2=D2+E2

日期差异=F2-C2

现在我想用 PowerQuery 转换 G 列“DateDiff”。我选择范围 A 到 G 并单击Data=>From Table/Rage

我被问到数据在哪里,我使用预填充的条目,然后单击确定。PowerQuery 打开:

PQ1

我选择列 DateDiff 并右键单击并复制此列。此列的副本出现,我选择它。在数据类型(当前显示十进制)上,我选择“持续时间”。值已转换,我可以看到以下内容:

普奎特

这正如预期的那样。所以首先是天,例如 32 天或 1 天或 33 天,然后是小时、分钟和秒(以及秒中的一些舍入/计算差异,但这可以忽略)。

我点击关闭并加载。

该表添加如下:

表2

值已更改。现在 H 列不再显示 32,33 和 1 天。这些值错误地显示为 1.07...、2.08...

我不明白为什么会这样?我怎样才能在这里得到正确的结果?

当我将格式更改为标准时,我再次得到正确的数字。所以数字没有改变。当我尝试应用自定义格式时,例如: T.hh:mm:ss 显示相同的错误数字。导致相同的问题。

4

1 回答 1

1

这似乎是一个格式问题。最有可能的是,您将 col H 格式化为d.hh:mm:ss

不幸的是,Excel 日期dday)格式(或您所在地区的 day 代码)不会显示任何值 > 31。到那时它会回绕到1

获得所需显示的一种方法是将其转换为字符串:

=INT(A1) & "." & TEXT(MOD(A1,1),"hh:mm:ss")

您还可以使用 Power Query 将其转换为字符串

  • 使用此公式添加自定义列:

     Text.From([DateDiff])
    
  • 然后使用作为分隔符拆分该列dot并仅选择最右边的分隔符。

  • 删除不需要的列。

于 2020-11-24T18:59:08.933 回答