让决策更智能
新一代智能数据分析平台

无日期字段如何计算同环比

观小远发表于:2021年12月22日 21:29:52更新于:2022年04月26日 15:09:16

场景

       有些数据集里没有日期字段,或者日期使用的是文本格式,这样在观远BI里制作卡片,计算同环比时,就会发现,高级计算里没有同环比的选项。那这些情况下,要怎么计算同环比呢?

实现方法

       系统自带的同环比功能只能基于日期类型字段,所以需要使用函数把文本型日期转换为日期字段,或者根据现有数据里的时间逻辑生成日期类型字段。

案例一:数据集里没有日期字段,但是存储有文本格式的年和季度,存储的是按季度汇总的门店数。 00161c347be6b14e27f1d9855c704cf

步骤:

1.     在数据集概览页面或者ETL里新建计算字段,使用函数生成每个季度的第一天。

有“年”和“季”字段时可用公式:

case when [季]='1' then [年]||'-01-01'
when [季]='2' then [年]||'-04-01'
when [季]='3' then [年]||'-07-01'
when [季]='4' then [年]||'-10-01'
end

仅有“季度”字段时可用公式:

case when right([季度],1)='1' then left([季度],4)||'-01-01'
when right([季度],1)='2' then left([季度],4)||'-04-01'
when right([季度],1)='3' then left([季度],4)||'-07-01'
when right([季度],1)='4' then left([季度],4)||'-10-01'
end


同环比设置方法一: 

2. 制作卡片,把上一步创建的日期字段直接拖到筛选栏,并进行筛选。

00161c347ffa9cedf8f8614ccbc73d3

3.  把数值字段拖到数值栏,点击选择高级计算—同比/环比,在弹出框里选择“基于日期筛选”模式。要计算年同比的话,对比类型选择“年同比(年/月/日)”,其他根据需要设置;要计算季度环比的话,因为日期只是每个季度的第一天,对比类型里没有合适选择,所以对比类型需要选择“自定义”,对比方式选:对比相对日期—前移3月。最后给字段设置别名。最终效果如下:

00161c348191d0ac704c7c74abcd7ef

00161c3481939d0dbb7dcfddf48145e

同环比设置方法二:以季度环比为例
       创建日期字段后,点击“日期”后面箭头,把“季度”拖到筛选栏,选择任意季度;数值字段拖入数值栏,选择高级计算—同比/环比,在弹出框里选择“基于日期筛选”模式,对比类型选择“环比”即可。

00161c34885be891ea9efd743134842

00161c34885b24c867e213e0ad122ea


案例二:某订单状态数据集没有任何日期字段,但是订单号本身是一个文本格式的长数字,前面数字其实是日期和时分秒。那便可以使用公式把日期和时间提取出来,再计算同环比。

00161c348e7278f8a9840ff3ac45961

新建计算字段,转换公式:

to_timestamp(left([OrderCode],14),’yyyyMMddHHmmss’)
to_date(left([OrderCode],8),’yyyyMMdd’)

       转换后为标准时间或者日期格式,可根据需要计算同环比,此处不再赘述。更多日期类转换函数请参考:Spark SQL日期处理函数及案例分享



    您需要登录后才可以回复