在我们日常的数据分析中,有一对形影不离的“对比兄弟”——同期和前期。几乎每张报表、每个看板,都能看到他们的身影。
- 同期喜欢回头看:“去年这个时候我们做得怎么样?”
- 前期习惯看身边:“这个月跟上个月比,是进步了还是退步了?”
一个帮你消除季节性因素干扰,看清真实增长;一个帮你捕捉近期变化信号,及时调整策略。今天就来认识一下这对兄弟。
这是最常用的两类,核心是"比一比"。可以对比去年同期、上个月、前一天的数据,并通过比值和增长率量化变化程度。
函数的衍生指标
虽然性格不同,但两兄弟的工作方式很一致——都能帮你算出值、比、增长、增长率四个指标。

更多同环比的内容可以看这篇专家分享:SmartBI同比环比分析大揭秘:让数据“笑”出真相!
函数实战案例
其实常规的我们可以直接使用向导去通过拖拉拽就可以实现了,那什么情况下,我们需要切换成函数呢?
示例背景 :
在企业运营分析场景中,核心指标(如政务办理量、企业审批效率、工作日营收等)的同环比计算,若采用 “自然日维度”,会因以下问题导致数据失真,影响业务决策:
- 非工作日的干扰:周末或法定节假日没有业务数据,跟相邻工作日直接对比,看起来就像“骤增”或“骤降”,实际只是正常节奏波动
- 人工追溯效率低:遇到节假日,业务人员得手动去找前一个工作日作为对比基准,费时费力还容易出错
- 部门规则不统一:调休日算不算工作日?不同部门口径不一致,跨部门对比就失去了意义
那么如何只统计“工作日”的数据呢?
实现步骤:
1、由于产品本身无法自动识别哪天是工作日,哪天不是工作日,所以需要客户自己准备一份日期表数据,标识哪天是工作日,哪天不是工作,我们准备如下数据:(Y代表是工作日,N代表非工作日。)

2、去创建数据模型,把“日期表”以及“交易记录”加载到数据模型中,并创建好时间层次:

3、使用“计算度量-函数”创建上一个工作日值:
① 系统会先去看昨天,然后从昨天开始往前倒推10天;

② 在这10天里,它只关心那些标记为“工作日” 的日子(也就是日期表里标“Y”的)。

③ 而且它还要确保这些工作日 确实有业务数据(不是空的)。

④ 在这10天内符合条件的日子里,它选出 离今天最近的那一天,然后把那天的指标值显示出来。


效果展示:


业务理解:比如今天周一,如果周末没数据,系统不会显示“空”,也不会拿周日的数据瞎比,它会自动找到上周五(最近一个工作日)的数据填进来。
但是如果用户想要把日期拉到“年”、“季度”或“月”层级去进行查看(例如查看 2026年7月)时,我们就需要替换一下函数了。 用 Descendants函数把当前所在的“月/季/年”成员,向下展开到最细的“日”级别,得到一个包含该时段内所有成员的集合。


业务理解:你看7月的汇总时,它不会给你“整个7月的总额”,而是给你“7月最后一个有数据的工作日那天的值”,相当于看一眼这个月最终定格在什么数字上。
那如果两种情况都有,就需要配合IFF函数进行条件判断了
最终代码内容

总结一下
通过上面的设置,你的报表就具备了“自动对齐工作日”的能力:
- 无论查看日、月、年,系统都能自动找到最近一个有数据的工作日作为基准;
- 周末、节假日自动跳过,不再干扰趋势判断;
- 业务人员无需手动翻日历,口径统一、结果可信。
是不是很心动这样的效果呢,那就快来动手实操一下吧~ ——>【函数】时间计算的同环比应用 |