Power BI: поиск последнего выбранного значения с использованием идентификатора действия (порядок событий) и идентификатора клиента - PullRequest
0 голосов
/ 29 января 2019

В настоящее время я пытаюсь рассчитать в меру последнюю сумму, выбранную в процессе оформления заказа.Это должно быть идентифицировано по идентификатору клиента.Последняя выбранная сумма может быть идентифицирована с помощью идентификатора действия (индексирует порядок событий, но не сбрасывается клиентом).

Три столбца: идентификатор действия, выбранная сумма и идентификатор клиента (см. URL-адрес изображения ниже),

РЕДАКТИРОВАТЬ 1/29/19: Вывод также должен исключать $ 0 в качестве опции вывода, если в идентификаторе клиента отсутствует «Подтверждено».Конечной целью было бы получить сумму «Желаемого результата».

Пример данных

 Action ID     Amount Chosen     Customer ID    Desired Output
 1             $10               1              
 2             $15               1              $0
 3             $20               2              
 4             $25               2              $25
 5             $0                2              
 6             Confirmed         2              

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Я подправил ответ Майка Хани для удовлетворения новых требований.Я думаю, что это работает - только что провела мягкую проверку.

Last Amount Chosen = 
VALUE(
    LOOKUPVALUE (
        TestData[AmountChosen],
        TestData[ActionID], MAXX (
            KEEPFILTERS ( VALUES ( 'TestData'[CustomerId] ) )
            , CALCULATE ( MAX ( 'TestData'[ActionID] )
                , FILTER(TestData, TestData[AmountChosen] <> "Confirmed")
                , FILTER(TestData, TestData[AmountChosen] <> "0") 
            )
        )
    )
) *  MAXX(TestData,if(TestData[AmountChosen] = "Confirmed",1,0))

Это в основном та же самая работа с несколькими дополнительными фильтрами, чтобы исключить особые случаи ('Подтверждено' и '0') из результата.Затем мы проверяем «подтвержденный» статус и получаем значение флага 0 или 1. Умножение этого флага на все, что возвращается поиском, либо обнулит результат, если он не подтвержден, либо пропустит его без изменений, если оно есть.

Следует отметить, что эта мера обеспечивает значимую информацию, только когда информация специально сгруппирована на уровне customerID.

enter image description here

0 голосов
/ 29 января 2019

Я бы использовал комбинацию функций LOOKUPVALUE и MAXX, например,

Last Amount Chosen =
LOOKUPVALUE (
    Table1[Amount Chosen],
    Table1[Action ID], MAXX (
        KEEPFILTERS ( VALUES ( 'Table1'[Customer ID] ) ),
        CALCULATE ( MAX ( 'Table1'[Action ID] ) )
    )
)

LOOKUPVALUE извлечет значение из одной строки.MAXX находит самый высокий идентификатор действия для каждого идентификатора клиента.

...