优阅达 | Tableau 微课堂(102):用 LOD 表达式查询复购订单
用 LOD 表达式查询复购订单
分析中的一个常见需求,是确定第二次事件发生的日期。例如客户进行复购,学生第二次缺席等等。
在 Tableau 中,这可以使用 LOD 表达式实现。关于 LOD 表达式的详细介绍,可点击 微课堂(92):LOD 表达式概念主题。
前言:分解业务问题
在本次微课堂中,我们希望回答一个问题:在首次购买后的 6 个月内,有多少客户复购了?为了更好地获取分析见解,先将这个问题分解成几个组成部分:
首先,需要知道首次购买的订单日期。
其次,需要知道复购的订单日期。
第三,需要确定复购日期是否在首次购买后的6个月内。
最后,需要确定满足条件的客户的百分比。
Step 1:计算出“首次购买日期”
先使用 LOD 表达式,确定首次购买日期。对于每一个客户,都需要找到最早的订单日期。或者,用 LOD 语法解释就是,固定到客户 ID 的详细级别,查找到他们的订单日期最小值。
右键单击“数据”窗格空白处,选择“创建计算字段”。将计算命名为“First Order Date”,公式如下:{FIXED [Customer ID] : MIN([Order Date])}
将此计算字段拖入到行中。右键将其设置为精确日期,并更改为离散。
现在,可以看到视图中已经呈现了每个客户的首次购买日期。这正是我们想要的。
Step 2:计算出“复购日期”
第二步可能会有点棘手。因为,这里需要做的是:查看每个客户每次下单的日期,并确定它是否发生在首次购买日期之后,还得确认它们是否为最早的日期。
所以,先来创建一个新的计算字段,来判断订单日期是否大于首次购买日期?如果是的话,则返回日期值。这样我们就可以继续使用这个值。
IF [Order Date] > [First Order Date]
THEN [Order Date]
END.
上述公式的结果,将返回首次购买日期之后所有的订单日期。但是,这里只需要返回最早的日期(复购时间),所以上述公式需要用最小值(MIN 函数)括起来。
MIN(IF [Order Date] > [First Order Date] THEN [Order Date] END)
粒度还要更细,因为要找出每个客户的复购时间。这时,LOD表达式就能发挥作用了。如何算出每个客户复购日期的最小值,需要根据维度“客户 ID”字段来确定。
{ FIXED [Customer ID] : MIN(IF [Order Date] > [First Order Date] THEN [Order Date] END)}
将此计算命名为 “Second Order Date”,并将其显示在视图中。注意,确保已右键将此胶囊设置为精确日期,且是离散的。
从视图可以看到:对于没有复购订单的客户,IF 语句将返回 Null 值。对于已复购的客户,每行都呈现了复购订单日期。
Step 3-1:比较日期
每个客户的首购和复购日期已经算出来了,但还需考虑首购后有多少客户在 6 个月内复购了。为了解决这个问题,接下来需要比较这 2 个日期。
创建一个计算字段,将其命名为 “Months to Second Purchase”。为了找出两个日期之间的间隔,这里使用 DATEDIFF 函数:
首先,需要告诉 Tableau 我们希望按照什么时间粒度来查看,是“年”、“月”还是“天”?在此处,我们选择“月”(记得加英文引号)。
键入英文逗号,拖入“First Order Date”字段作为起始时间,再加一个逗号,再拖入 “Second Order Date” 字段作为结束时间,关闭括号。
如果将创建好的 “Months to Second Purchase” 字段拖入列中,将看到许多客户在 6 个月之外的时间内有复购行为。但这只是数据的一小部分,所以我们继续。
Step 3-2:复购情况
接下来,创建一个计算来看看客户复购的情况:他们复购了吗?是否在 6 个月内复购?还是超过 6 个月?
创建一个计算字段,将其命名为 “Repeat Purchasing” ,然后输入:
IF [Months to Second Purchase] >= 6 THEN "More than 6 months"
ELSEIF [Months to Second Purchase] < 6 THEN "Within 6 months"
ELSE "No second purchase"
END
将这个计算字段拖入“行”中,可以看到视图中已正确显示了我们要求的日期值。
所有计算元素都准备好了,最后,我们来看看,如何求出 6 个月内复购的客户百分比。
Step 4:最终分析
创建新的工作表,将 “Repeat Purchasing” 字段拖入行中,右键选中 “Customer ID” 并拖入列中,然后选择计数(不同)。现在我们看到的是不同间隔分别有多少客户的视图。
然后,右键单击 “Customer ID” 胶囊,在下拉菜单中选择“快速表计算”-“合计百分比”。
点击“标记”卡中的“标签”,勾选“显示标记标签”。
现在,可以看到视图呈现的分析结果:
Oh No!只有 8 % 的客户在 6 个月内复购了,而没有复购的客户竟高达 68% !很显然,我们需要做些行动了。
本节 Tableau 微课堂到此结束,感谢你的耐心阅读。