自动生成完整日期序列!又有了新方法...

楼主
帆软社群问答顾问; 入选2022年帆软产品致谢名单;

🏖️盛夏时节,阳光如火🔥,愿你心中荡漾着欢乐与清凉🧊,享受这美丽的夏日时光😎。

今日,上海的气温高达37℃,尽管相较于前几日的酷热略有缓和,但依旧保持着令人难以忽视的高温。在这样的气候条件下,小剑真想寻求片刻的休憩。然而,我意识到,作为一名知识分享者,我应当利用自身的专业所长,为广大求知者提供更多的实用信息,以确保他们能够在学习的道路上更加顺畅无阻。

案例介绍

在今日的分享中,我将向大家介绍一项FineBI数据处理的高效技巧——如何在数据集中自动生成完整日期序列。以2024年为例,该技巧能够快速生成从2024年1月1日至12月31日的所有日期,极大地简化了数据准备工作。在数据分析的工作中,完整日期序列作为关键的分析维度,其重要性不言而喻。特别是在预算执行分析和预算预测分析等场景下,这一数据元素能够发挥其独特的价值。通过精确的日期序列,分析师能够细致地追踪预算的实际执行情况,并对未来的预算趋势进行科学预测。

或许有观点认为,在Excel中手动创建日期序列同样便捷。然而,Excel操作依赖于人工输入,且需频繁上传更新,这在数据分析领域中属于重复性劳动,不仅耗时且易出错。因此,我们应当追求自动化解决方案,以提升数据分析工作的效率和准确性。通过FineBI的这一功能,我们能够确保数据处理的流畅性和高效性,从而为后续的分析工作奠定坚实基础。

实操演示

我们首先第一步需要准备一份详细的销售数据集。这一步骤的核心目的是从庞大的销售流水记录中提取出日期信息,并进一步确定每个日期所对应的年份。随后,基于这些年份信息,我们可以运用FineBI,来生成相应年份的完整日期序列。

第二步的操作至关重要。我们需要从销售流水数据中精确地提取出最早时间最晚时间这一步骤不仅简单明了,而且极为关键,因为它为我们确定了销售流水表的时间范围,即日期的跨度。

第三步(接下来的每一步都非常关键,一定不要跳过),我们将依据从销售流水数据中提取的最早和最晚时间,构建一个完整的年份序列。以图示为例,若最早时间为2019年9月24日,最晚时间为2023年1月24日,那么我们生成的年份序列将精确地涵盖2019年至2023年,即:2019、2020、2021、2022、2023。

这一步我们使用到了一个隐藏函数:range。此函数在FineBI函数列表并没有明确展示的介绍,但是却非常有用。

range(YEAR(${最早时间}),YEAR(${最晚时间}),1)

相关隐藏函数的介绍请翻阅我的另外一篇文章:FineBI中的秘密函数,只需1秒便开挂,提升数据分析效率!

 

 

第四步是对前一步骤所生成的日期序列数组进行细致的格式化处理。具体操作上,我们需要对数组进行精简,即去除其外围的中括号。这一任务可以通过replace函数高效完成,确保日期序列以更加简洁和规范的形式展现。

REPLACE(REPLACE(${年份序列},"[",""),"]","")

第五步的操作尤为关键,它涉及一个可能被忽视但却功能强大的技术——行列拆分尽管这一功能在日常数据处理中不常被提及,但它的实用性不容小觑。

通过以下简洁的5步操作,我们可以将前一步骤中生成的年份扩展值,按照逗号分隔符,精确地分配到每一行中。这一过程不仅展示了数据处理的精细技巧,也体现了在数据分析中对细节的重视和把控。通过这样的操作,数据的可读性和可用性得到了显著提升,为后续的深入分析和决策支持提供了坚实的基础。

第六步的操作是对月份数据进行细致的构建与拆分。这一步骤借鉴了前述对年份处理的方法,展现了数据分析中的连贯性和逻辑性。

首先,我们生成一个从1至12的月份序列,接着,我们去除序列值中的中括号。最后,通过拆分行列的操作,我们将数据按照逗号分隔符精确地分配到不同的行中,这一过程如下面三个图所示,清晰地展示了数据处理的精细步骤。

月份序列:

range(1,12,1)

月份扩展:

REPLACE(REPLACE(${月份序列},"[",""),"]","")

第七步聚焦于日维度的序列生成与拆分,这一步骤延续了前两步的逻辑基于前两步所得到的年份序列和月份序列,我们生成对应年月的完整日数据序列随后,我们去除序列中的中括号最终,通过拆分操作,我们将这些日数据精确地分配到每一行中,从而实现年、月、日的完整扩展。
在这一步中,我们将使用到隐藏函数:rangedateinmonth,字符替换函数:replace,日期函数:date 和 day
日序列:
range(DAY(DATE(${年份扩展-拆分行结果},${月份扩展-拆分行结果},"01")),DAY(dateinmonth(DATE(${年份扩展-拆分行结果},${月份扩展-拆分行结果},"01"),-1)),1)

日扩展:

REPLACE(REPLACE(${日序列},"[",""),"]","")

第八步,这一步就是将上面扩展后的年、月、日组装成日期即可。这一步骤虽然看似简单,却是确保数据完整性和可用性的关键一环。

DATE(${年份扩展-拆分行结果},${月份扩展-拆分行结果},${日扩展-拆分行结果})

第九步,也就是我们的最后一步,我们只需要将前面几个辅助字段隐藏保留日期字段即可。

 

结果验证

至此,我们已经完成了从年份到每日数据的全面扩展为了确保每一步操作的准确无误,我们进行了一次简的验证。

通过检查日期数据的最早和最晚日期,我们能够确认数据的完整性和时间跨度。此外,统计各年份的天数,如下图所示,不仅验证了数据的一致性,也展示了数据处理的细致入微。这些简单的验证步骤,如同数据分析的守护者,确保了我们的数据在后续应用中的可靠性和准确性。

 

总结

通过一个简明易懂的实际案例,我们不仅掌握了FineBI工具的使用技巧,还深入理解了函数的综合应用。这一过程不仅提升了我们的操作技能,更为数据分析带来了全新的视角,让分析工作变得高效而流畅,如同顺水推舟般自然。

那么,你是否已经掌握了这些技巧呢?让我们一起将理论转化为实践,让数据分析成为你手中的利器,轻松应对各种挑战。

为助你将这些分析理论精华融入业务,特在帆软官网视频课推出系统化的FineBI6.1:业财融合实战进阶课 - 视频课 - 帆软学院 (fanruan.com)》,课程引用真实零售快销公司数据作为案例,涵盖多种数据分析模型、方法、技巧、经验,助力思维跃升。

立即报名,开启学习之旅!

分享扩散:
参与人数 +1 F币 +40 理由
Nancy.Gu + 40 24原创内容激励计划

查看全部评分

沙发
发表于 2024-7-10 09:58:51

写的好好

板凳
发表于 2024-7-10 10:00:29
您好,感谢您的投稿。您此篇文章介绍如何在数据集中自动生成完整日期序列,介绍内容详尽,流程清晰规范,图文结合效果较好,给读者观感较好。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

3回帖数 1关注人数 2686浏览人数
最后回复于:2024-7-10 10:11

返回顶部 返回列表