业务实战记录(3):Tableau计算用户注册之后6个月内订单数异常

导读:本篇文章讲解 业务实战记录(3):Tableau计算用户注册之后6个月内订单数异常,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

一、前言

年初的时候,业务人员提了一个需求,需要查看今年之后每个月注册的用户,6个月内的订单数(当月开始往后计算6个月),并分别展示当月、次月到第5个月的订单数统计,由于还需要看用户的详情信息,所以把所有用户的订单数据拉到Tableau面板上,通过Tableau公式进行聚合统计。
注:实际需求并不是统计订单数,而且统计其他业务需求,由于背景信息较复杂,改用订单数类比。

二、需求实现

数据拉完放到面板上,然后通过以下公式统计:

//6个月总订单数
//原公式
count(if MONTH([支付时间])<=MONTH(DATEADD('month',5,[注册时间])) then [订单id] end )

验证了一下数据,没问题,然后交差了。

这几天,运营人员在反馈一些其他问题的时候,突然发现,这一列数据神奇的变成0了,虽然8月份明明是有订单数据的。
后来看了一下公式,推算一下,8+5=13,嗯,变成明年的1月份了,单独取月份对比的时候,8<1不成立,所以数据都没了。
image.png
怎么解决呢?
其实很简单,tableau提供了一个时间截断公式,截断后的部分取最小值,举个例子就明白了,比如有一个时间:2022-08-10 08:22:33

  • 截取年份,则月日时分秒都取最小值,即2022-01-01 12:00:00 AM(tableau的0点显示为12点AM);
  • 截取月份,则日时分秒都取最小值,即2022-08-01 12:00:00 AM
  • 截取日份,则时分秒都取最小值,即2022-08-10 12:00:00 AM
  • 官方的举例是使用季度(如下图),季度是一个隐含条件,一季度使用1月1日,二季度使用4月1日,三季度使用7月1日,四季度使用10月1日。所以2022-08-10 08:22:33截取季度就是2022-07-01 12:00::00 AM

image.png
测试结果如下:
image.png
所以修改后公式如下:

//6个月总订单数
//修改后公式
count(if DATETRUNC('month',[支付时间])<=DATETRUNC('month',DATEADD('month',5,[注册时间])) then [订单id] end)

就是将MONTH()函数替换为DATETRUNC()即可。

三、小结

//6个月总订单数
//原公式
count(if MONTH([支付时间])<=MONTH(DATEADD('month',5,[报名日期])) then [order_id] end )
//修改后公式
count(if DATETRUNC('month',[使用时间])<=DATETRUNC('month',DATEADD('month',5,[日期])) then [order_id] end)

在处理时间问题上,经常会有一些意向不到的“惊喜”,通过这些“惊喜”可以不断丰富我们的经验,完善我们的认知,“且行且珍惜”。

数据表和Tableau上的一些测试都在资源(Tableau计算用户注册之后6个月内订单数)中,需要的小伙伴自行下载(免费)查看。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/66950.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!