Power BI 中 2 个数据切片器的变化百分比
Percentage of change with 2 data slicers in Power BI
我有一个包含两个数据切片器的场景。第一个数据限幅器过滤一个周期的数据,第二个限幅器过滤另一个周期的数据。通过编辑视觉交互,我在同一页面上完成了这项工作。
现在我想比较两个结果值(在本例中为交易数量,并找出两个选定时间段之间的变化百分比。
我复制了数据列,所以每个切片器都有两个日期列,我计算了下一个度量:
# of Transactions 1 = CALCULATE(COUNT(Report[ProductID]),DATESBETWEEN(Report[Date1],[Start Date 1],[Last Date 1]))
# of Transactions 2 = CALCULATE(COUNT(Report[ProductID]),DATESBETWEEN(Report[Date2],[Start Date 2],[Last Date 2]))
% Transaction Change = ([# of Transactions 1]/[# of Transactions 2]) - 1
前 2 个度量是准确的(# of Transactions 1 & 2),但是 % 的变化不起作用。
如果您查看下面的屏幕截图,您会看到#od Transactions 1 = 1,990 和#of Transactions 2 = 2,787。我现在想比较这 2 个值。
我该如何解决这个问题?
谢谢。
首先为您的日期范围创建两个度量:
Min Date :=
MIN ( 'Report'[Date] )
Max Date :=
MAX ( 'Report'[Date] )
然后使用以下 DAX 创建一个日期 table,这将在主要日期加入你 'Report' table:
Dates :=
VAR MinDate = [Min Date]
VAR MaxDate = [Max Date]
VAR BaseCalendar =
CALENDAR ( MinDate, MaxDate )
RETURN
GENERATE (
BaseCalendar,
VAR BaseDate = [Date]
VAR YearDate =
YEAR ( BaseDate )
VAR MonthNumber =
MONTH ( BaseDate )
VAR YrMonth =
100 * YEAR ( BaseDate )
+ MONTH ( BaseDate )
VAR Qtr =
CONCATENATE ( "Q", CEILING ( MONTH ( BaseDate ) / 3, 1 ) )
VAR YrMonthQtr =
100 * YEAR ( BaseDate )
+ MONTH ( BaseDate )
& CONCATENATE ( "Q", CEILING ( MONTH ( BaseDate ) / 3, 1 ) )
VAR YrMonthQtrDay =
100 * YEAR ( BaseDate )
+ MONTH ( BaseDate )
& CONCATENATE ( "Q", CEILING ( MONTH ( BaseDate ) / 3, 1 ) )
& DAY ( BaseDate )
RETURN
ROW (
"Day", BaseDate,
"Year", YearDate,
"Month Number", MonthNumber,
"Month", FORMAT ( BaseDate, "mmmm" ),
"Year Month", FORMAT ( BaseDate, "mmm yy" ),
"YrMonth", YrMonth,
"Qtr", Qtr,
"YrMonthQtr", YrMonthQtr,
"YrMonthQtrday", YrMonthQtrDay
)
)
现在创建另一个日期 table 进行比较,并加入您在 'Report' 的主要日期 table 并确保关系处于非活动状态:
Compare Dates :=
ALLNOBLANKROW ( 'Dates' )
现在创建 [# of transaction] 度量;一个用于 'Dates',另一个用于 'Compare Dates',如下所示:
[# of Transaction 1] :=
CALCULATE (
COUNT ( Report[ProductID] )
)
[# of Transaction 2] :=
CALCULATE (
[# of transaction 1],
ALL ( 'Dates' ),
USERELATIONSHIP ( 'Compare Dates'[Date], 'Report'[Date] )
)
现在创建 % Delta 度量:
Transaction Change := CALCULATE(DIVIDE([# of Transactions 1],[# of Transactions 2]) - 1)
这应该会很有用,并且适用于在您的切片器中选择的任何日期,您仍然需要将您的日期切片器与您的新日期相关联 tables。
希望对您有所帮助!!
我有一个包含两个数据切片器的场景。第一个数据限幅器过滤一个周期的数据,第二个限幅器过滤另一个周期的数据。通过编辑视觉交互,我在同一页面上完成了这项工作。 现在我想比较两个结果值(在本例中为交易数量,并找出两个选定时间段之间的变化百分比。
我复制了数据列,所以每个切片器都有两个日期列,我计算了下一个度量:
# of Transactions 1 = CALCULATE(COUNT(Report[ProductID]),DATESBETWEEN(Report[Date1],[Start Date 1],[Last Date 1]))
# of Transactions 2 = CALCULATE(COUNT(Report[ProductID]),DATESBETWEEN(Report[Date2],[Start Date 2],[Last Date 2]))
% Transaction Change = ([# of Transactions 1]/[# of Transactions 2]) - 1
前 2 个度量是准确的(# of Transactions 1 & 2),但是 % 的变化不起作用。 如果您查看下面的屏幕截图,您会看到#od Transactions 1 = 1,990 和#of Transactions 2 = 2,787。我现在想比较这 2 个值。
我该如何解决这个问题?
谢谢。
首先为您的日期范围创建两个度量:
Min Date :=
MIN ( 'Report'[Date] )
Max Date :=
MAX ( 'Report'[Date] )
然后使用以下 DAX 创建一个日期 table,这将在主要日期加入你 'Report' table:
Dates :=
VAR MinDate = [Min Date]
VAR MaxDate = [Max Date]
VAR BaseCalendar =
CALENDAR ( MinDate, MaxDate )
RETURN
GENERATE (
BaseCalendar,
VAR BaseDate = [Date]
VAR YearDate =
YEAR ( BaseDate )
VAR MonthNumber =
MONTH ( BaseDate )
VAR YrMonth =
100 * YEAR ( BaseDate )
+ MONTH ( BaseDate )
VAR Qtr =
CONCATENATE ( "Q", CEILING ( MONTH ( BaseDate ) / 3, 1 ) )
VAR YrMonthQtr =
100 * YEAR ( BaseDate )
+ MONTH ( BaseDate )
& CONCATENATE ( "Q", CEILING ( MONTH ( BaseDate ) / 3, 1 ) )
VAR YrMonthQtrDay =
100 * YEAR ( BaseDate )
+ MONTH ( BaseDate )
& CONCATENATE ( "Q", CEILING ( MONTH ( BaseDate ) / 3, 1 ) )
& DAY ( BaseDate )
RETURN
ROW (
"Day", BaseDate,
"Year", YearDate,
"Month Number", MonthNumber,
"Month", FORMAT ( BaseDate, "mmmm" ),
"Year Month", FORMAT ( BaseDate, "mmm yy" ),
"YrMonth", YrMonth,
"Qtr", Qtr,
"YrMonthQtr", YrMonthQtr,
"YrMonthQtrday", YrMonthQtrDay
)
)
现在创建另一个日期 table 进行比较,并加入您在 'Report' 的主要日期 table 并确保关系处于非活动状态:
Compare Dates :=
ALLNOBLANKROW ( 'Dates' )
现在创建 [# of transaction] 度量;一个用于 'Dates',另一个用于 'Compare Dates',如下所示:
[# of Transaction 1] :=
CALCULATE (
COUNT ( Report[ProductID] )
)
[# of Transaction 2] :=
CALCULATE (
[# of transaction 1],
ALL ( 'Dates' ),
USERELATIONSHIP ( 'Compare Dates'[Date], 'Report'[Date] )
)
现在创建 % Delta 度量:
Transaction Change := CALCULATE(DIVIDE([# of Transactions 1],[# of Transactions 2]) - 1)
这应该会很有用,并且适用于在您的切片器中选择的任何日期,您仍然需要将您的日期切片器与您的新日期相关联 tables。
希望对您有所帮助!!