从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..
最终结果:
我正在计算“封闭列”的差异。所有数据都在一列中,我正在计算所有行的 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..
最终结果: