我在数据文件(Excel)中有开始日期和结束日期,然后在PowerQuery中添加一列,我只需从结束日期中减去开始日期即可创建新列“导入时间”,将结果的数据类型更改为持续时间,在PowerQuery中,该列正确显示以Day:Hour:Minute:Seconds表示的差异。但是,在报告中,我需要不显示整个列的平均值,而是显示基于整个表的矩阵中值组的平均值。换句话说,我正在寻找一个显示“类别名称”,“平均”列的表。持续时间和最大持续时间,其中的行显示了每个唯一类别的结果。
问题是,当我将表字段拖到“可视化值”区域中并更改为“平均值”时,它将结果表示为小数,而我不知道如何显示等效的日期/时间。我以为可能要乘以3600,因为结果可能会以毫秒为单位显示,但这没有用。有什么想法吗?
因此,我认为Power BI可能不是问题所在,而是Microsoft如何表达日期/时间计算问题。我编辑了包含源数据的Excel文件,并通过从结束时间中减去开始时间来计算“导入时间”。默认情况下,它以“ hh:mm:ss.0000”的日期/时间格式显示。然后,我问Google,并得到一个简单的解释:要以数字格式表示日期/时间,您需要将日期/时间乘以24(小时),60(分钟)和60(秒)。表达结果。然后,我创建了一个数据透视表,汇总了导入时间的平均值,并在Power BI报表中看到了与我单击相同的内容。
为了解决该问题,我编辑了Power Query步骤以计算导入时间,并在公式中添加了“ * 24 * 60 * 60”。更新报告后,结果与我在Excel中看到的结果相符,很好。希望这可以帮助其他人解决这个令人烦恼的问题。
您将平均度量包装在FORMAT
函数中,以将其精确转换为要在矩阵中显示的文本格式。例如,假设您的原始输出为
Group AvgDuration
------------------
A 0.0633
B 0.2733
C 0.0600
这些数字以天为单位,因此您可以这样转换为小时,分钟或秒,例如:
FORMAT ( [AvgDuration] * 24, "0.00h" )
FORMAT ( [AvgDuration] * 24 * 60, "#,0m" )
FORMAT ( [AvgDuration] * 24,* 60 * 60, "#,0s" )
FORMAT ( [AvgDuration], "hh:mm:ss" )
(([AvgDuration]是用于计算平均值的度量)
后两个应该看起来像这样:
Group AvgDuration
------------------
A 5,472s
B 23,616s
C 5,184s
和
Group AvgDuration
------------------
A 01:31:12
B 06:33:36
C 01:26:24