12月追加:欢迎加入知乎【微软BI技术圈】,一起讨论、分享包括PowerBI在内的一切BI话题!

两种方法计算每月或每季开发的新客户数量

简述

客户分析中,有时你可能需要分析每隔一段时间有多少新客户流入(同样地,有多少老客户流失),有时可能需要通过新客户开发数量来对员工绩效进行考核等等,对于此,本文分享了两种不同的DAX写法来计算新客户开发数。

过程

数据表(部分)如下:

方法一

首先把订单按照客户ID和下单时间划分为"首单"和"非首单",然后计算每个月有多少个客户的订单被标记为"首单",那么这就代表每个月流入的新客户数量。
首先进行订单划分(此处原理参考本文):

二次购买判断 =
VAR
E_Date = 'Data'[订单日期]
VAR
CUST = 'Data'[客户 ID]
RETURN
IF(SUMX(FILTER('Data',CUST = 'Data'[客户 ID]&&E_Date > 'Data'[订单日期]),COUNTROWS('Data'))>0,"非首次","首次")

然后,计算新客户流入数量

每月新增客户数 =
CALCULATE(DISTINCTCOUNT(Data[客户 ID]),'Data'[二次购买判断] = "首次")

效果如下:
此图未指定年份,仅用于展示效果

方法二

这种方法的原理类似于差分,用截至该月份为止的客户数减去到上个月为止的客户数得出该月的新增客户数,如需计算每季增加数,MONTH改为QUARTER即可:
关于EXCEPT函数

每月新增客户数 2 =
VAR
X = -1
VAR
CUST = VALUES('Data'[客户 ID])
VAR
Pre_CUST =
CALCULATETABLE(VALUES('Data'[客户 ID]),FILTER(ALL('Data'),Data[订单日期]>DATEADD('Data'[订单日期],X,MONTH)&&'Data'[订单日期]<MIN('Data'[订单日期])))
RETURN
COUNTROWS(EXCEPT(CUST,Pre_CUST))

效果如下:

其他

第一种方法不在公式内考虑时间间隔,而是在正常时间轴筛选下进行日,周,月或季的转换。第二种方法则需要在公式内部指定时间间隔,尽管正常的时间轴对它的筛选依然有效。当然,也可以通过传参的方式在可视化界面切换数据的时间间隔。

[PowerBI]两种方法计算每月或每季开发的新客户数量相关推荐

  1. Google Earth Engine(GEE)——用两种方法计算NDWI水域面积提取(Landsat 8)

    使用 Landsat 8 使用指标 NDWI 使用两种方法计算水域面积 ,这次我们随便选择了陕西附近的一个部分作为我们的研究区, 我们所需用到的函数: ee.Image(args) An object ...

  2. Mixly第三方库开发的两种方法——U8g2库二次开发

    Mixly第三方库开发的两种方法--U8g2库二次开发 前言 方法一:自定义库 1.创建库文件夹 2.开始编程 2.1.定义图形块的基本信息 2.2.定义图形块的外观样式 2.3.定义图形块与C语言的 ...

  3. JAVA中初始化线程的两种方法_java中最简单的方式新起一个线程

    启动一个线程 在一个方法中启动一个线程,有两种方法 第一种是让类实现Runable接口,这样的话编译器就会提示你实现里面的未实现的方法(就是run方法) 第二种是,现在方法中new一个线程,然后直接调 ...

  4. 【Python】两种方法计算平均值、中值、众数、方差、标准差、百分位数

    目录 数据特征 数据集 均值(Mean) - 平均值 中值(Median) - 中点值,又称中位数 众数(Mode) - 最常见的值 方差 标准差(欧式距离) 百分位数 数据特征 特征探索主要是对数据 ...

  5. 两种方法计算斐波那契数列第n项

    百度斐波那契数列定义: 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为&qu ...

  6. C# Windows Phone 8 WP8 开发,取得手机萤幕大小两种方法。

    C# Windows Phone 8 WP8 开发,取得手机萤幕大小两种方法. 原文:C# Windows Phone 8 WP8 开发,取得手机萤幕大小两种方法. 一般我们在开发Windows Ph ...

  7. 产生随机字符java_java生成随机字符串的两种方法

    本文实例为大家分享了java生成随机字符串的具体代码,供大家参考,具体内容如下 import java.util.Random; public class CharacterUtils { //方法1 ...

  8. DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)利用MNIST数据集进行训练、预测

    DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)利用MNIST数据集进行训练.预测 导读 利用python的numpy计算库,进行自定义搭建2层神经网络TwoLayerN ...

  9. 现代密码学3.1--定义计算安全的两种方法

    现代密码学3.1--定义计算安全的两种方法 三种安全性定义 定义计算安全的两种方法 具体方法/concrete approach 渐进方法/asyptotic approach "高效/PP ...

最新文章

  1. GSA+麦肯锡开年首场线上活动:汽车半导体要变天?
  2. Oracle 10g 之自动收集统计信息
  3. sql server where 条件 区分大小写查询
  4. [C++ STL] 各容器简单介绍
  5. java中的基本算法
  6. asp.net出现【视图状态消息身份验证错误】
  7. BMP JPEG 图片转换为矢量图像 ContourTrace
  8. Multisim仿真—恒流源电路(二)
  9. idea groovy自定义自动生成实体 dao/mapper service等,支持表注释 字段注释
  10. 实时音视频聊天中的延时问题一篇就够,低延时场景及优化
  11. 昆石VOS2009/VOS3000 2.1.6.00 Web接口说明书
  12. sql 练习查询和“01“号的同学学习的课程完全相同的其他同学的信息
  13. 笔记本连接WiFi后浏览器不能上网,但是连接手机热点就可以。问题解决!!!
  14. python tkinter根据多选框设置state=‘disabled‘控件的属性
  15. SAP 采购发票校验
  16. 两个集合相减怎么算_什么是集合的减法运算??,集合运算问题-
  17. 【清明特辑】那些虽败犹荣的科技先烈们
  18. ScrollBar ScrollWindow
  19. Python黑科技:暴力破解,你的密码真的安全么?
  20. 算法与数学之美:最全数学各个分支简介

热门文章

  1. 现在哪些行业是暴利行业?
  2. 胖枢纽:为什么我们不是枢纽极简主义者
  3. 基于FPGA的串口传图SRAM缓存VGA显示
  4. 把Jetson Xavier NX的系统移动到nvme硬盘上
  5. java代码把行政区划代码转json格式及sql
  6. 使用zlib库解压文件
  7. js正则匹配多个全部数据
  8. 分别使用Kahn和DFS实现拓扑排序
  9. 拓扑排序(Topological Sorting):Kahn 算法和 DFS 算法
  10. 360浏览器广告太多的处理方法