Powerbi Giftcard客户转型为;“真正的”;DAX中的客户计算

Powerbi Giftcard客户转型为;“真正的”;DAX中的客户计算,powerbi,dax,powerbi-desktop,Powerbi,Dax,Powerbi Desktop,我正在尝试计算,如果客户第一次订购礼品卡,是否会转变为“普通”客户,这意味着他/她下次订购时没有礼品卡 我可以从PaymentMethod中看到客户是如何付款的(PaymentMethod=“礼品卡”) 我做了一个专栏,上面写着“礼品卡”,如果订单是用这个购买的,否则它是空白的 所以基本上我想做一个专栏,说明:如果客户第一次用礼品卡购买,然后又下了新订单,那就不是用礼品卡购买的。 例如,1如果为真,0如果为假 我的订单表中有以下列: 医嘱ID 客户ID 预订日期 付款方式(现金、信用卡、礼品卡等

我正在尝试计算,如果客户第一次订购礼品卡,是否会转变为“普通”客户,这意味着他/她下次订购时没有礼品卡

我可以从PaymentMethod中看到客户是如何付款的(PaymentMethod=“礼品卡”)

我做了一个专栏,上面写着“礼品卡”,如果订单是用这个购买的,否则它是空白的

所以基本上我想做一个专栏,说明:如果客户第一次用礼品卡购买,然后又下了新订单,那就不是用礼品卡购买的。 例如,1如果为真,0如果为假

我的订单表中有以下列:

  • 医嘱ID
  • 客户ID
  • 预订日期
  • 付款方式(现金、信用卡、礼品卡等)
  • 礼品卡(空白或礼品卡)
  • 我尝试过不同的DAX代码,但问题是-我不知道如何写第一个订单必须是礼品卡订单,客户的下一个订单必须是非礼品卡订单,因此我怀疑我尝试过的DAX代码是否相关

    以下是我希望实现的目标:


    我希望有人能给我指引正确的方向,提前谢谢你。

    我建议如下:

    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 && PaymentMethods > 1, 1, BLANK () )
    
    这将计算第一个订单日期,然后检查是否在该日期使用了礼品卡。它还统计使用的(不同)支付方法的总数


    结论是,如果在第一次约会时使用礼品卡,并且使用了其他类型的付款方式以及客户的购买历史记录中的某个点,那么这就是一个过渡客户。

    在Alexis i的帮助下,如果客户第一次订购时使用礼品卡,则返回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"
                && orders[ReturningCustomer] = "Yes"
                && PaymentMethods > 1,
                1,
            0
        )
    
    在计算完这一列之后,我刚刚创建了一个度量,用于计算客户编号中不同的1

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