优阅达 | Tableau 微课堂(102):用 LOD 表达式查询复购订单

published: 2023-05-08

用 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 微课堂到此结束,感谢你的耐心阅读。