从power bi中的同一列但不同的行中减去值

Subtracting values from the same column but different rows in power bi

我正在计算“封闭列”的差异。所有数据都在一列中,我正在计算所有行的 Row2-Row1 之间的差异。我得到的结果有一些是正值,一些是负值。正值是正确的,但负值是不正确的。我正在应用公式

diff = 
Table3[Value] - 
CALCULATE(
    SUM (Table3[Value]), 
    FILTER(
        Table3, 
        Table3[Index] = EARLIER(Table3[Index])- 1
    )
).
 

Screenshot of my formula

Output after applying formula, -ve and +ve values

请帮助我如何更正我的 -ve 值?

Month        Week           Month End     Closed    Open   GT     IN    
01/2020      W01-2020       N             71        178    249    71
01/2020      W02-2020       N             284       189    473    213   
01/2020      W03-2020       N             550       210    760    266   
01/2020      W04-2020       N             861       185    1046   311   
01/2020      W05-2020       Y             1185      205    1390   324   
02/2020      W06-2020       N             370       206    576    370   
02/2020      W07-2020       N             665       209    874    295   

Power Query Editor 中,我在数据中添加了一个从 1 开始的 Index 列,输出如下-

现在,创建下面的度量以获取当前行中的前几行 Closed 值-

prev_row_closed_value = 
CALCULATE(
    SUM (your_table_name[Closed]), 
    FILTER(
        ALL(your_table_name), 
        your_table_name[Index] = MIN(your_table_name[Index]) - 1
    )
)

为了计算差异,使用下面的度量-

diff = 

MIN(your_table_name[Closed]) - 
CALCULATE(
    SUM (your_table_name[Closed]), 
    FILTER(
        ALL(your_table_name), 
        your_table_name[Index] = MIN(your_table_name[Index]) - 1
    )
)

这是上述测量的输出-

在 Dax 中,您可以使用以下公式。

在第一步中,我们创建了一个列来为您的周列排序:

YearWeek = CONVERT(RIGHT(Sheet1[Week], 4) & MID(Sheet1[Week],2,2),INTEGER)

这将创建一个与您的年份和月份相关的整数值。接下来我们可以使用它来减去之前关闭的金额,我们首先在正确的月份进行过滤。请注意,我假设这是一个日期列。

In = 
var curMonth = Sheet1[Month]
var curYW = Sheet1[YearWeek]
var filterMonthYW = FILTER(Sheet1, curMonth = Sheet1[Month] && curYW > Sheet1[YearWeek])
var MaxYW = CALCULATE(MAX(Sheet1[YearWeek]), filterMonthYW)
return Sheet1[Closed] - CALCULATE(MAX(Sheet1[Closed]), FILTER(filterMonthYW, MaxYW = Sheet1[YearWeek] ))

Sheet1 是您的 table..

最终结果: