节假日数据区分和对比
场景
很多行业(例如零售行业)节假日和工作日销售数据差距会比较大,做数据分析的时候需要把节假日和工作日数据区分开。但是数据库里一般都是只保存日期,不会专门保存节假日日期和农历日期,这样中国的农历节假日就比较难识别出来;并且中国放假会伴随着周末调休,只判断周一到周五为工作日也不够严谨。例如用户在观远BI要对比两年春节的销售数据就很不方便。本文就介绍如何简单快速的标注出法定节假日信息并用于同环比计算。
实现步骤
1. 准备节假日手工表。
1)创建一个Excel文档,手动输入一年第一天日期,然后拖住往下填充至当年最后一天。
2)根据国务院公布的每年节假日安排(2021年节假日),在第二、三列手动补充节假日和调休信息。非法定节假日的节日可根据需要自行补充。
3)文件上传到BI里,每年末为该表追加一次新一年的节假日即可。下图仅供参考。
2. 使用ETL处理文件
1)在ETL里把节假日表作为输入数据集。
2)添加计算列,使用函数 weekday() +1 得到每天是星期几。
返回结果是一个1到7之间的整数,WEEKDAY函数里0=星期一,1=星期二,...,6=星期日。
3)再添加计算列,根据原有的节假日信息和上一步得到的周天信息,重新判断每个日期是节假日还是工作日。本文案例不另行区分节假日和周末,使用公式和预览效果如下:
4)使用关联节点把包含日期字段的业务数据集和上面处理好的节假日数据集关联起来。后续根据自己需求处理数据,保存并运行ETL。
3. 创建卡片
1)把字段「节日名称」放入维度栏,「日期(年)」放入维度栏或者对比栏,
2)添加需要的筛选条件,即可以对比同一个节日两年的数据。
4. 最终效果
1)仅对比数值时,「日期(年)」放入对比栏或者维度栏都可以,制作示范如下图:
2)需要计算增长值或者增长率时,需要把「日期(年)」放入维度栏,然后数值字段使用 「高级计算 ->同比/环比->年环比」,制作示范如下图: