如何使用Power BI计算新客户数量? - 图1

    每个企业的经营活动都是围绕着客户而开展的,在服务好老客户的同时,不断开拓新客户是每个企业的经营目标之一。

    开拓新客户必然要付出一定的费用支出,费用支出除以新客户数,就是新客成本,新客成本的高低也决定了企业的盈利水平。

    客户拓展费用支出相对容易衡量,而新客户的数量如何计算呢?

    表面上感觉计算起来并不难,但如何从数万笔的订单数据中,快速计算任意一个时间段有多少新客户?使用传统的Excel函数并不是那么容易计算的。

    本文就来尝试在PowerBI中,使用度量值来快速计算出新客户数量,以及更进一步,计算出新客户的购买金额。


    示例数据模型中有一个订单表和一个日期表,通过订单日期建立关系,先建立两个简单的度量值如下:

    客户数 = DISTINCTCOUNT(‘订单’[客户姓名])

    销售金额 = SUM(‘订单’[销售额])

    然后直接写出新客户数量的度量值:

    新客户数 =

    VAR FirstOrderDate=

    ADDCOLUMNS (

    ALL (‘订单’[客户姓名]),

    “首次购买日期”,

    CALCULATE(

    MIN(‘订单’[订单日期]),

    ALLEXCEPT(‘订单’,’订单’[客户姓名])

    )

    )//计算每一个客户的首次购买日期

    VAR NewCustomers=

    FILTER (

    FirstOrderDate,

    CONTAINS(

    VALUES (‘日期表’[日期]),

    ‘日期表’[日期], [首次购买日期]

    )

    )//返回新客户列表

    RETURN

    COUNTROWS(NewCustomers)

    看起来很长,其实主要就是两个VAR定义的虚拟表,第一个虚拟表FirstOrderDate返回的是所有客户名称以及每一个客户首次购买日期。

    这其中只有一个函数之前的文章中没有使用过:ALLEXCEPT,关于该函数的含义和用法可以参考这个函数卡片:

    如何使用Power BI计算新客户数量? - 图2

    (知识星球中每日函数卡片)

    VAR定义的第二个虚拟表NewCustomers,返回的是任意时间段内,新客户的列表

    然后使用COUNTROWS(NewCustomers)就计算出了新客户的数量,总客户数减去新客户数量就是老客户数量。

    如何使用Power BI计算新客户数量? - 图3

    从上表数据中可以看到,第一个月全部是新客户(这里假设是从1月开始经营),到4月开拓的新客户达到峰值,虽然总体客户数量一直在增长,但新客户开拓速度明显下降,后期主要靠老客户的重复购买。

    如何使用Power BI计算新客户数量? - 图4

    更进一步地,使用度量值来计算新客户的销售金额。

    新客户购买金额 =

    VARFirstOrderDate=

    ADDCOLUMNS (

    ALL (‘订单’[客户姓名]),

    “首次购买日期”,

    CALCULATE(

    MIN(‘订单’[订单日期]),

    ALLEXCEPT(‘订单’,’订单’[客户姓名])

    )

    )//计算每一个客户的首次购买日期

    VARNewCustomers=

    FILTER (

    FirstOrderDate,

    CONTAINS(

    VALUES (‘日期表’[日期]),

    ‘日期表’[日期], [首次购买日期]

    )

    )//返回新客户列表

    RETURN

    CALCULATE([销售金额],NewCustomers)

    这段代码和计算新客户数量的DAX,只有最后一行不一样,计算新客户数量时,使用COUNTROWS返回新客户列表的行数,而这里使用CALCULATE([销售金额],NewCustomers)来计算新客户的销售额。

    所以,无论是计算新客户数量还是求新客户的销售额,重点就是如何获得新客户的列表。

    同样,总销售金额减去新客户的购买金额,就是老客户的重复购买金额。

    如何使用Power BI计算新客户数量? - 图5

    上表中外部上下文是每月,实际上,可以选择任意时间段,比如想看看国庆促销期间增加的新客户,只要选择10月1日到10月7日这个期间,上面度量值会立即计算出这7天里增加的新客户和新客户的购买金额。

    /前文回顾/

    01 如何快速理解一个复杂的DAX?

    02 如何用Power BI分析产品关联度?

    **学会了这个思路,你也可以轻松进行周分析!