如何创建一个先通过设备然后对所有设备求和的度量
How to create a measure that goes first through equipment and then sums it all
我有一个数据库,其中有一些值为“Date”、“StopedTime”、“PlannedProductionQtt”和“PlannedProductionTime”。这些值按设备排序,如下面的小示例。
我需要做的是将 PlannedProductionQtt 除以 PlannedProductionTime,然后乘以 StoppedTime。在此之后,我想制作一个图表来显示它的每一天。
一开始我觉得很简单,做了一个新措施PlannedProductionQtt/PlannedProductionTime = SUM(PlannedProductionQtt)/SUM(PlannedProductionTime)
(假设没有table名字也行)。
然后我又做了一个测量Impact = SUM(StoppedTime)*PlannedProductionQtt/PlannedProductionTime
。
当我用这个度量值和日期作为轴绘制一个簇状柱形图时,起初我以为我已经搞定了,但没有。 BI 将所有 PlannedProductionQtt 求和除以当天所有 PlannedProductionTime 的总和,再乘以当天的 StoppedTime 总和。
不幸的是,这给了我错误的结果。所以,我需要的是一种措施(或一些措施),可以使设备逐设备并按天求和。
我不想为这些计算创建新的 table 或列,因为我实际上有 32 件设备、3 年以上的数据、不止 1 个 StoppedTime 分类和 PlannedProduction 数据库每台设备每天使用超过一条线路。
为了清楚起见,我添加了一列作为影响以显示差异。
因此,如果我对每天的影响列求和,第 1、2 和 3 天的结果将是 110725、61273 和 220833。
但是,如果我首先对第 1 天的所有 PlannedProductionQtt 求和,将其除以第 1 天的 PlannedProductionTime 之和,然后乘以第 1 天的 StoppedTime 之和(PowerBi 的计算方式),我将得到146497.
我在下面的 table 中插入了差异以明确差异:
您有两种不同类型的数据要在那里划分,time 和 int,因此您可能需要统一它们。最简单的方法是从转换数据面板,选择列并更改其
format
除法很简单,你可以尝试创建一个新的度量如下
measure_name = CALCULATE(
DIVIDE(<source_table>[PlannedProductionQtt],
<source_table>[PlannedProductionTime],
0)
* <source_table>[StoppedTime]
)
然后只需将其用作图表中的值和 x 轴中的 'Date' 列即可。
正如 Jon 在评论中所建议的那样,这解决了我的需求:
measure_name = SUMX( source_table , DIVIDE ( source_table[PlannedProductionQtt] , source_table[PlannedProductionTime] , 0 ) ) * SUM( source_table[StoppedTime] )
我有一个数据库,其中有一些值为“Date”、“StopedTime”、“PlannedProductionQtt”和“PlannedProductionTime”。这些值按设备排序,如下面的小示例。
我需要做的是将 PlannedProductionQtt 除以 PlannedProductionTime,然后乘以 StoppedTime。在此之后,我想制作一个图表来显示它的每一天。
一开始我觉得很简单,做了一个新措施PlannedProductionQtt/PlannedProductionTime = SUM(PlannedProductionQtt)/SUM(PlannedProductionTime)
(假设没有table名字也行)。
然后我又做了一个测量Impact = SUM(StoppedTime)*PlannedProductionQtt/PlannedProductionTime
。
当我用这个度量值和日期作为轴绘制一个簇状柱形图时,起初我以为我已经搞定了,但没有。 BI 将所有 PlannedProductionQtt 求和除以当天所有 PlannedProductionTime 的总和,再乘以当天的 StoppedTime 总和。
不幸的是,这给了我错误的结果。所以,我需要的是一种措施(或一些措施),可以使设备逐设备并按天求和。
我不想为这些计算创建新的 table 或列,因为我实际上有 32 件设备、3 年以上的数据、不止 1 个 StoppedTime 分类和 PlannedProduction 数据库每台设备每天使用超过一条线路。
为了清楚起见,我添加了一列作为影响以显示差异。
因此,如果我对每天的影响列求和,第 1、2 和 3 天的结果将是 110725、61273 和 220833。
但是,如果我首先对第 1 天的所有 PlannedProductionQtt 求和,将其除以第 1 天的 PlannedProductionTime 之和,然后乘以第 1 天的 StoppedTime 之和(PowerBi 的计算方式),我将得到146497.
我在下面的 table 中插入了差异以明确差异:
您有两种不同类型的数据要在那里划分,time 和 int,因此您可能需要统一它们。最简单的方法是从转换数据面板,选择列并更改其 format
除法很简单,你可以尝试创建一个新的度量如下
measure_name = CALCULATE(
DIVIDE(<source_table>[PlannedProductionQtt],
<source_table>[PlannedProductionTime],
0)
* <source_table>[StoppedTime]
)
然后只需将其用作图表中的值和 x 轴中的 'Date' 列即可。
正如 Jon 在评论中所建议的那样,这解决了我的需求:
measure_name = SUMX( source_table , DIVIDE ( source_table[PlannedProductionQtt] , source_table[PlannedProductionTime] , 0 ) ) * SUM( source_table[StoppedTime] )