Автоматическая формула для выбора значений из указанного идентификатора и умножения на остальные с тем же именем - PullRequest
1 голос
/ 30 апреля 2019

Я пытаюсь найти способ выбрать конкретный идентификатор, прочитать его значения и найти все продукты с одинаковыми именами в разных идентификаторах и умножить первые значения X.values ​​на переменные других продуктов в разных идентификаторах.

так, например, у меня есть данные ниже:

Raw Data

и я хочу выбрать ID = 1234, чтобы найти все тома, связанные с продуктами 1234. Найдите продукты с тем же именем в других идентификаторах и умножьте каждый том продукта с идентификатором = 1234 на одноименное название продукта X. Значение другого идентификатора, как показано ниже: required Calculation

Спасибо

1 Ответ

1 голос
/ 30 апреля 2019

В вычисляемом столбце вы можете использовать LOOKUPVALUE, чтобы найти Объем для идентификатора 1234 и соответствующего Продукта, а затем выбрать способ расчета выходных данных на основе того, было ли возвращено соответствующее значение:

New Column = 
VAR LookupID = 1234
VAR LookupVolume = 
    LOOKUPVALUE ( 
        Table1[Volume],
        Table1[ID], LookupID,
        Table1[Product], Table1[Product]
    )
RETURN
    Table1[X.Value] & " * " & 
    IF ( 
        ISBLANK ( LookupVolume ),
        Table1[Volume],
        LookupVolume
    ) 

Рабочий пример файла PBIX: https://pwrbi.com/so_55916210/

РЕДАКТИРОВАТЬ

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

ID List = DISTINCT ( Table1[ID] )

Тогда мы можем использовать меру:

New Measure = 
SUMX ( 
    Table1,
    VAR LookupID = 
        IF ( 
            HASONEVALUE ( 'ID List'[ID] ),
            VALUES ( 'ID List'[ID] ),
            BLANK()
        )
    VAR LookupProduct = 
        IF ( 
            HASONEVALUE ( Table1[Product] ),
            VALUES ( Table1[Product] ),
            BLANK()
        )
    VAR EffectiveVolume =
        CALCULATE ( 
            SUM ( Table1[Volume] ),
            ALL ( Table1 ),
            Table1[ID] = LookupID,
            Table1[Product] = LookupProduct
        )
    RETURN
    Table1[X.Value] * 
    IF ( 
        ISBLANK ( EffectiveVolume ),
        Table1[Volume],
        EffectiveVolume
    )
) 

Обновленный файл PBIX: https://pwrbi.com/so_55916210-2/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...