我在我的数据文件(Excel)中有开始日期和结束日期,然后在PowerQuery中我添加了一列,我只是简单地从结束日期中减去开始日期来创建一个新列“导入时间”,将结果的数据类型更改为持续时间,并且在PowerQuery中,该列正确地显示了以天:小时:分钟:秒表示的差异。但是,在报告中,我需要显示的不是整个列的平均值,而是基于整个表的矩阵中各组值的平均值。换句话说,我正在寻找一个显示Category Name,Avg列的表。持续时间和最大持续时间,各行显示每个唯一类别的结果。
问题是,当我将一个表字段拖到可视化值区并更改为Average时,它将结果表示为小数,而我不知道如何显示日期/时间等效项。我认为我可能需要乘以3600,因为结果可能以毫秒为单位显示,但这不起作用。有什么想法吗?
发布于 2020-05-08 22:33:47
所以我推测,问题可能不是Power BI的问题,而是Microsoft如何表达日期/时间计算的问题。我编辑了包含源数据的Excel文件,并通过从End Time中减去Begin Time来计算出"Import Time“。默认显示日期/时间格式为"hh:mm:ss.0000“。然后我问了Google,发现了一个简单的解释:要用数字格式表示日期/时间,如果你想用24 (小时),60 (分钟)和60 (秒)来表示结果,你需要将日期/时间乘以24(小时),60(分钟)和60(秒)。然后,我创建了一个数据透视表,汇总了导入次数的平均值,并看到了我在Power BI报告中所做的相同事情,即当它为我单击它时。
为了解决这个问题,我编辑了Power Query步骤来计算导入时间,并在公式中包含了“* 24 * 60 * 60”。更新报告后,结果与我在Excel中看到的结果相匹配,我很好。希望这能帮助其他人处理这个令人烦恼的问题。
发布于 2020-05-08 23:56:00
您将平均值度量包装在一个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:24https://stackoverflow.com/questions/61657417
复制相似问题