Клиент подарочной карты переходит в «реальный» расчет клиента в DAX

#powerbi #dax #powerbi-desktop

#powerbi #dax #powerbi -рабочий стол

Вопрос:

Я пытаюсь вычислить, станет ли клиент, который использует подарочную карту в качестве своего первого заказа, «обычным» клиентом, что означает, что в следующий раз он / она заказывает без подарочной карты.

Из метода оплаты я вижу, как клиент заплатил (PaymentMethod = «Подарочная карта»)

Я создал столбец с надписью «Подарочная карта», если заказ приобретается с помощью этого, в противном случае он пуст.

Итак, в основном я хочу создать столбец, в котором указано: если клиент совершает первую покупку с помощью подарочной карты и позже делает новый заказ, это не приобретается с помощью подарочной карты. Так, например, 1, если TRUE, 0, если FALSE.

В моей таблице заказов есть следующие столбцы:

  1. Идентификатор заказа
  2. CustomerID
  3. Дата бронирования
  4. Метод оплаты (наличными, кредитной картой, подарочной картой и т. Д.)
  5. Подарочная карта (пустая или подарочная карта)

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

Вот картина того, чего я надеюсь достичь: Столбец, которого я пытаюсь достичь

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

Ответ №1:

Я бы предложил что-то в этом роде:

 TransitioningCustomer =
VAR FirstOrderDate =
    CALCULATE ( MIN ( Data[BookingDate] ), ALLEXCEPT ( Data, Data[CustomerID] ) )
VAR FirstOrderGiftCard =
    "GC"
        IN CALCULATE (
            VALUES ( Data[PaymentMethod] ),
            ALLEXCEPT ( Data, Data[CustomerID] ),
            Data[BookingDate] = FirstOrderDate
        )
VAR PaymentMethods =
    CALCULATE (
        DISTINCTCOUNT ( Data[PaymentMethod] ),
        ALLEXCEPT ( Data, Data[CustomerID] )
    )
RETURN
    IF ( FirstOrderGiftCard amp;amp; PaymentMethods > 1, 1, BLANK () )
  

При этом вычисляется дата первого заказа, а затем проверяется, использовалась ли подарочная карта в эту дату. Он также подсчитывает общее количество (различных) используемых способов оплаты.

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

Ответ №2:

С помощью Alexis я закончил с этим, что возвращает 1, если клиент использует подарочную карту для своего первого заказа и что-то еще, кроме подарочной карты, для своего второго заказа.

 FirstOrderGiftNextOrderNotGift = 
VAR FirstOrderID =
    CALCULATE (
      MIN ( orders[Column1.Order_ID] ),
        ALLEXCEPT ( orders, orders[Column1.Customer_ID] )
    )
VAR FirstOrderGiftCard =
    CALCULATE (
        VALUES ( orders[Column1.PaymentMethod] ),
        ALLEXCEPT ( orders, orders[Column1.Customer_ID] ),
        orders[Column1.Order_ID] = FirstOrderID,
        orders[Column1.PaymentMethod] = "Giftcard"
    )
VAR PaymentMethods =
    CALCULATE (
        DISTINCTCOUNT ( orders[Column1.PaymentMethod] ),
        ALLEXCEPT ( orders, orders[Column1.Customer_ID] )
    )
RETURN
    IF (
        FirstOrderGiftCard = "Giftcard"
            amp;amp; orders[ReturningCustomer] = "Yes"
            amp;amp; PaymentMethods > 1,
            1,
        0
    )
  

После вычисления этого столбца я только что создал меру для подсчета отдельных единиц номеров клиентов.

 CountOfCustomersWhoTransitioned =
CALCULATE (
    DISTINCTCOUNT ( orders[Column1.Customer_ID] ),
    orders[FirstOrderGiftNextOrderNotGift] = 1
)