我也是初学者,写这个的目的是想和大家一起学习,欢迎大家指出我的问题所在,期待一起进步,以及Tableau真的真的是一个很有趣的软件!
数据来源:https://www.kaggle.com/datasets/anandaramg/global-superstore?resource=download
官方教程:https://www.tableau.com/zh-cn/blog/LOD-expressions
这张图是根据Tableau官方发布的《15大详细级别表达式》教程所复刻。
效果图
提出问题
在超市数据集中,不同的客户存在1~N次下单的情况,但客户数量很多(在超市数据集中,存在4873位客户),我们没有办法去观察每一位客户的下单情况。但是可以通过对客户的订单频率的统计,来了解所有客户的下单情况。
因此,可以将问题定义为:以订单频率为维度,查看在不同的订单频率下,客户的分布情况?
问题拆解
1. 每位客户的订单频率如何获取?
2. 客户的订单频率严格来说是度量,如何将其转化为维度?
在Tableau中实现
1. 每位客户的订单频率如何获取?
方法一:
1. 直接拖拽Customer ID到列标签,作为维度
2. 在行标签的空白处,双击,会出现一个胶囊,输入:Countd( [Order ID] )
- 对Order ID(订单ID)进行计数,其中Countd这个函数,指的是不重复计数;Count函数,则不考虑是否重复。
方法二:
使用LOD,也就是FIXED表达式,对每位客户的订单频率进行计算。
新建一个Number of Order的字段,FIXED表达式用法如下图,以Customer ID为维度,计算每位客户的订单数量,并将Customer ID和Number of Order拖动到对应的行和列标签。
从图中可以看出,下单了18次的客户只有1位,下单了17次的客户有2位,以此类推。
2. 客户的订单频率如何将其转化为维度?
虽然我们计算出了每位客户的订单频率(Number of Order),但到目前为止,这依旧是度量值,将其拖动到行或列标签上时,会自动聚合,如图所示。
但我们需要将订单频率转化为维度,并将客户数量作为度量值,进行统计。
实现方法:只需要将Number of Order 字段从度量值区域拖动到维度区域即可。
随后,将字段拖动到对应的行或列标签即可。
以及对客户数量进行不同计数,即可得到客户订单瓶频率的分布统计图。