Процент изменений с двумя срезами данных в Power BI - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть сценарий с двумя срезами данных.Первый слайсер данных фильтрует данные за один период, второй - за другой период.Редактируя визуальные взаимодействия, я получил это работает на той же странице.Теперь я хочу сравнить два результирующих значения (в данном случае количество транзакций и найти процент изменений между двумя выбранными периодами.

Я дублировал столбец данных, поэтому у меня есть два столбца даты для каждого среза, и я рассчиталследующие меры:

# 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 Транзакции 1 = 1,990 и кол-во транзакций 2 = 2787. Я хочу сравнить эти 2 значения сейчас.

Как мне решить эту проблему?

enter image description here

Спасибо.

1 Ответ

0 голосов
/ 14 сентября 2018

Сначала создайте две меры для ваших дат:

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

Теперь создайте другую таблицу дат, с которой нужно сравнивать, и присоединитесь к вашей основной таблице дат в «Отчете» и убедитесь, что связь неактивна:

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)

Это должно работать как шарм и будет работать для любых дат, выбранных в ваших срезах, вам все равно нужно будет связать ваши срезы дат с вашими новыми таблицами дат.

Надеюсь, это поможет !!

...