在Power Bi中计算行差异

3

我需要帮助计算上一行与其后面的%之间的差异,以便在Power Bi中建立漏斗图。

enter image description here

你能帮我吗?

1个回答

4
我使用以下表格来原型化解决方案:
表格名称:"数据"

enter image description here

(为了方便度量命名,列名略有不同;根据您的喜好进行更改。)

创建第一个度量:

Total Amount = SUM(Data[Amount])

创建第二个度量:
Accumulated Difference =
VAR Current_Index = MAX ( Data[Index] )
VAR Initial_Amount =
    CALCULATE ( 
        MAX ( Data[Amount] ), 
        FILTER ( ALL ( Data ), Data[Index] = 1 ) )
VAR Accumulated_Reductions =
    CALCULATE (
        [Total Amount],
        FILTER ( ALL ( Data ), Data[Index] > 1 && Data[Index] <= Current_Index ) )
RETURN
    Initial_Amount - Accumulated_Reductions

创建第三个度量:
% Previous =
VAR Current_Index = MAX ( Data[Index] )
VAR Current_Difference =
    CALCULATE (
        [Accumulated Difference],
        FILTER ( ALL ( Data ), Data[Index] = Current_Index ) )
VAR Previous_Difference =
    IF (Current_Index > 1,
        CALCULATE (
            [Accumulated Difference],
            FILTER ( ALL ( Data ), Data[Index] = Current_Index - 1 ) ) )
RETURN
    DIVIDE ( Current_Difference, Previous_Difference )

结果:

enter image description here

解释:

第一项措施仅为方便起见,以避免多次编写相同的求和式。

第二项措施: 首先,我们找到当前行中可见的索引并将其保存在一个变量中。然后,我们找到初始金额(索引为1时的金额),因为我们需要它作为起点。ALL是必要的,以忽略应用于行的筛选器。 然后,使用类似的模式,我们计算当前行与初始行之间的累积减少(例如,在步骤D中,我们需要对索引(4、3、2)的金额求和)。 最后,所需的结果只是初始金额减去累积减少。

第三项措施: 使用非常类似的技术,我们首先找到当前行的累积差异,然后找到上一行的累积差异。这里唯一的细微差别是测试上一行是否符合起始条件(如果它是具有索引1的初始行,则不计算前值)。一旦知道了当前和前一个差异,我们只需将它们除以即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接