首页 文章

Power BI中2个数据切片器的更改百分比

提问于
浏览
0

我有一个带有两个数据切片器的场景 . 第一个数据限制器过滤一个周期的数据,第二个过滤另一个周期的数据 . 通过编辑视觉交互,我在同一页面上工作 . 现在我想比较两个结果值(在这种情况下,交易数量,并找出两个选定期间之间的变化百分比) .

我复制了数据列,所以每个切片器有两个日期列,我计算了下一个度量:

# 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个指标是准确的(交易1和2的数量),但改变的百分比不起作用 . 如果你看下面的截图,你会看到#od Transactions 1 = 1,990和#Transactions Transactions = 2,787 . 我想现在比较这2个值 .

我怎么解决这个问题?

enter image description here

谢谢 .

1 回答

  • 1

    首先为您的日期边界创建两个度量:

    Min Date :=
    MIN ( 'Report'[Date] )
    Max Date :=
    MAX ( 'Report'[Date] )
    

    然后使用以下DAX创建日期表,这将连接到主日期的“报告”表:

    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
                )
        )
    

    现在创建另一个要比较的日期表,并在“Report”中加入主日期表并确保关系处于非活动状态:

    Compare Dates :=
    ALLNOBLANKROW ( '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)
    

    这应该像魅力一样,适用于切片器中选择的任何日期,您仍需要将日期切片器与新的日期表相关联 .

    我希望这有帮助!!

相关问题