У меня есть четыре таблицы, которые я пробовал, связанные и не связанные:

  1. Магазин (колонка «Номер магазина»)
  2. Календарь (столбец «Дата продажи»)
  3. SKU (колонка «Код SKU»)
  4. Продажи (столбцы «Номер магазина», «Дата продажи», «Код SKU» и «Объем продаж»)

У меня есть слайсеры на календарь и таблицы SKU

Мне нужно перечислить все магазины с общим "Sales Quantity" для каждого магазина и в то же время ограничить объем продаж двумя срезами, упомянутыми выше. По сути, мне нужно перечислить эти столбцы:

  1. Номер магазина - из таблицы магазина (без фильтрации из слайсеров)
  2. Название магазина - из таблицы магазина (без фильтрации из слайсеров)
  3. Общее количество продаж в магазине - рассчитанная мера, отфильтрованная по слайсерам Calendar и SKU

Итак, мой вопрос: какой DAX требуется для создания рассчитанного показателя?

Обратите внимание, я должен перечислить ВСЕ магазины независимо от того, есть ли у них продажи в оговоренный период.

Я пробовал различные функции DAX, такие как TREATAS, SUMMARIZE, ETC. Я пробовал с и без активных отношений и без отношений. Самый близкий у меня код ниже, но он исключает магазины с нулевыми продажами. Мне нужны все магазины независимо от их продаж.

Qty by Store = CALCULATE(
    sum(Sales[Sales Qty])
    ,USERELATIONSHIP(
        Sales[Store Number]
        ,Store[Store Number]
    )
)

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

1
RGI 16 Авг 2019 в 14:27

2 ответа

Лучший ответ

Оставьте отношения активными и измените формулу DAX на

Qty by Store = 
    VAR res = sum(Sales[Sales Quantity])
RETURN IF (ISBLANK(res), 0, res)

Нет необходимости в USERELATIONSHIP(). Отношение Store - Sales уже активно. Причина, по которой количество магазинов изменяется в визуальной таблице, заключается в том, что при отсутствии продажи для конкретного магазина Qty by store мера возвращает BLANK, и эти BLANK отфильтровываются таблицей.

Результат:

enter image description here

1
Nick Krasnov 16 Авг 2019 в 13:54

Простой способ сделать пустой возвратный ноль - просто добавить +0 в формулу меры.

Qty by Store = SUM ( Sales[Sates Quantity] ) + 0

Это работает, потому что DAX вычисляет BLANK() + 0 = 0.

1
Alexis Olson 16 Авг 2019 в 14:32