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。

希望对您有所帮助!!