#powerbi #dax #powerbi-desktop
#powerbi #dax #powerbi -рабочий стол
Вопрос:
Я пытаюсь вычислить, станет ли клиент, который использует подарочную карту в качестве своего первого заказа, «обычным» клиентом, что означает, что в следующий раз он / она заказывает без подарочной карты.
Из метода оплаты я вижу, как клиент заплатил (PaymentMethod = «Подарочная карта»)
Я создал столбец с надписью «Подарочная карта», если заказ приобретается с помощью этого, в противном случае он пуст.
Итак, в основном я хочу создать столбец, в котором указано: если клиент совершает первую покупку с помощью подарочной карты и позже делает новый заказ, это не приобретается с помощью подарочной карты. Так, например, 1, если TRUE, 0, если FALSE.
В моей таблице заказов есть следующие столбцы:
- Идентификатор заказа
- CustomerID
- Дата бронирования
- Метод оплаты (наличными, кредитной картой, подарочной картой и т. Д.)
- Подарочная карта (пустая или подарочная карта)
Я пробовал разные коды 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
)