DAX Measure для расчета количества отдельных элементов в производстве и продуктах - PullRequest
0 голосов
/ 05 декабря 2018

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

Столбцы таблицы, как показано ниже

Manufacturer Product Features
Honda Civic Feature1
Honda Civic Feature2
Honda Civic Feature3
Maruti Ciaz Feature1
Maruti Ciaz Feature4
Maruti Ciaz Feature5
Toyato Camry Feature2
Toyoto Camry Feature4
Toyoto Camry Feature6
Toyoto Camry Feature7

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

Manufacturer - TotalCount - DistinctCountOverHonda
Honda - 3 - 3
Maruthi - 3 - 2 ( Feature4, Feature5) are the distinct features, when compared to Honda
Toyoto - 4 - 3 ( Feature4, Feature6, Feature7) are the unique features over Honda.

Пожалуйста, помогите мне написать меру для DistinctCountOverHonda и применить фильтр для удаления дубликата и сохранитьв строке таблицы сводных данных присутствуют только уникальные особенности производителя.

В приведенном выше примере я сохранил Honda в качестве основы для сравнения с другими производителями.Возможно, я добавлю срез для того, чтобы пользователь динамически выбирал базового производителя в качестве таблицы параметров и рассчитывал количество отражений на основе выбора пользователя.

1 Ответ

0 голосов
/ 06 декабря 2018

По сути, вы хотите найти все отличительные черты обоих производителей вместе, а затем вычесть отличительные черты для Honda.

DistinctCountOverBase =
VAR CurrentManufacturer =
    SELECTEDVALUE ( Table1[Manufacturer] )
VAR CombinedFeatures =
    CALCULATETABLE (
        DISTINCT ( Table1[Features] ),
        Table1[Manufacturer] IN { CurrentManufacturer, "Honda" }
    )
VAR HondaFeatures =
    CALCULATETABLE ( DISTINCT ( Table1[Features] ), Table1[Manufacturer] = "Honda" )
RETURN
    IF (
        CurrentManufacturer = "Honda",
        COUNTROWS ( HondaFeatures ),
        COUNTROWS ( CombinedFeatures ) - COUNTROWS ( HondaFeatures )
    )

Вот несколько более обобщенное решение:

DistinctCountOverBase =

VAR Base = "Honda"

VAR CurrentManufacturer =
    VALUES ( Table1[Manufacturer] )

VAR CombinedFeatures =
    CALCULATETABLE (
        DISTINCT ( Table1[Features] ),
        FILTER (
            ALL ( Table1 ),
            Table1[Manufacturer] IN CurrentManufacturer
                || Table1[Manufacturer] = Base
        )
    )

VAR BaseFeatures =
    CALCULATETABLE ( DISTINCT ( Table1[Features] ), Table1[Manufacturer] = Base )

RETURN

    IF (
        SELECTEDVALUE ( Table1[Manufacturer] ) = Base,
        COUNTROWS ( BaseFeatures ),
        COUNTROWS ( CombinedFeatures ) - COUNTROWS ( BaseFeatures )
    )
...