Power Query 的日期计算未正确转换为 excel table

Day calculation from PowerQuery not correclty transformed to excel table

我正在使用 PowerQuery 创建特定的日期持续时间列。我有以下 xlsx table:

日期时间1:=A2+B2

DateTIme2=D2+E2

DateDiff=F2-C2

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

系统询问我数据在哪里,我使用预填充的条目,然后单击“确定”。 PowerQuery 打开:

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

这符合预期。所以首先是天,例如 32 或 1 或 33 天,然后是小时、分钟和秒(秒中有一些 rounding/calculation 差异,但这可以忽略)。

我点击关闭并加载。

将table添加如下:

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

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

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

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

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

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

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

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

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

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

  • 删除不需要的列。