Как использовать DAX для фильтрации по размерам брони и даты прибытия из двух таблиц? - PullRequest
0 голосов
/ 06 февраля 2019

Я изо всех сил пытаюсь объединить несколько фильтров, просматривая две таблицы в меру DAX.Цель состоит в том, чтобы вернуть значения желтым цветом ниже.

У меня есть таблица продаж по прибытии.Когда клиент делает заказ, у него будет дата прибытия в наш отель.Поэтому у нас есть два измерения даты в одной таблице.Нам необходимо оценивать производительность для каждой даты прибытия в годовом исчислении ( и свернуть по месяцу / году прибытия, если необходимо ), но также на основе даты бронирования ( и свернуть по месяцу бронирования)./ год при желании ).

Соотношение наших таблиц показано на рисунке выше.Между датой бронирования таблицы продаж прибытия и датой таблицы календаря существует отношение много к одному.Существует еще одно отношение «один к одному» с датой прибытия таблицы продаж и датой прибытия календаря.

При рассмотрении сопоставимого дня предыдущего года мы убираем 364 дня из текущего дня, чтобы обеспечить сопоставимый деньнедели, т. е. вторник, 5 февраля 2019 г., будет сравниваться со вторником, 6 февраля 2018 г. .Это относится и к дате бронирования, и к дате прибытия.

Пытаясь создать показатель для заказов на предыдущий год, я не могу получить ожидаемые значения с помощью следующей попытки DAX.

PY Bookings:=
IF (
NOT ( ISBLANK ( [Bookings] ) ),
CALCULATE (
    [Bookings],
    FILTER (
        ALL ( Calendar ),
        Calendar[Date]
            >= MIN ( Calendar[Date] ) - 364
            && Calendar[Date]
                <= MAX ( Calendar[Date] ) - 364
    ),
    FILTER (
        ALL ( 'Arrival Calendar' ),
        'Arrival Calendar'[Arrival Date]
            >= MIN ( 'Arrival Calendar'[Arrival Date]) - 364
            && 'Arrival Calendar'[Arrival Date]
                <= MAX ( 'Arrival Calendar'[Arrival Date] ) - 364
    )
  )
)

Ожидаемые результаты : возвращать значения в желтом цвете, т. Е. Бронирования за прошлые годы для этой эквивалентной даты бронирования и эквивалентной даты прибытия.

Фактические результаты : Заказы PY становятся пустыми после добавления календаряФильтр даты.Без фильтра календарной даты в PY Bookings отображаются все бронирования на дату прибытия PY за весь период бронирования.

1 Ответ

0 голосов
/ 11 февраля 2019

Глупо, ответ пялился на меня все время.

В исходном описании DAX он содержал аргумент IF IS BLANK, и это влияло на результаты.Как только я удалил это, все работает отлично, и обе таблицы отфильтрованы!

PY Bookings:=
CALCULATE (
[Bookings],
FILTER (
    ALL ( Calendar ),
    Calendar[Date]
        >= MIN ( Calendar[Date] ) - 364
        && Calendar[Date]
            <= MAX ( Calendar[Date] ) - 364
),
FILTER (
    ALL ( 'Arrival Calendar' ),
    'Arrival Calendar'[Arrival Date]
        >= MIN ( 'Arrival Calendar'[Arrival Date]) - 364
        && 'Arrival Calendar'[Arrival Date]
            <= MAX ( 'Arrival Calendar'[Arrival Date] ) - 364
)
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...