【FineBI学习打卡】DAY93 展示筛选范围内的当期值与同期值

楼主
我是社区第1095980位番薯,欢迎点我头像关注我哦~

第93天知识点:组件参数的运用

 

假如现在有一张数据表,里面记录了不同的数据日期及对应数值,日期从2023年1月开始,到2024年6月结束。

常见的关于展示筛选时间范围内的值的需求会分为2种:

1、日期过滤组件样式为年月样式

当筛选某个具体的年月时,数据表显示截至到该月份的当年值及去年对应时间范围的值。

比如,当选择2024年6月时,数据表展示当年值(即2024年1月至6月的数据)以及同期值(即2023年1月至6月的数据)。

2、日期过滤组件样式为年月区间样式

当筛选某个年月区间(不跨年)时,数据表显示该年月区间的值及去年对应同区间的值。

比如,当时间选择2024年1月-2024年9月时,数据表展示2024年1月至9月的数据(因为2024年数据到6月就结束了,所以实际只能展示到6月的数据)以及2023年1月至9月的数据。

遇到上面这两种业务场景,大家有什么解决思路吗?

之前,我们分享过一篇文章:关于筛选后同期值为什么会消失?

里面提到了一种解决办法:参数。

其实,上面的2个问题,同样也可以用参数的方式去解决。

我们依次来看一下。

 

01

需求:筛选年月,展示截至到该年月的当年值及对应同期值(不可跨年)

分析:假如筛选2024年6月

当年值:年份=筛选日期的年份,1<=月份<=筛选日期的月份

同期值:年份+1=筛选日期的年份,1<=月份<=筛选日期的月份

操作步骤:

1、新建1个时间参数,命名为:截至日期

2、添加计算字段:

当年值(年月筛选):

DEF(SUM_AGG(值),[],[YEAR(数据日期)=YEAR(截至日期),MONTH(数据日期)>=1,MONTH(数据日期)<=MONTH(截至日期)])

同期值(年月筛选):

DEF(SUM_AGG(值),[],[YEAR(数据日期)+1=YEAR(截至日期),MONTH(数据日期)>=1,MONTH(数据日期)<=MONTH(截至日期)])

3、【数据日期】字段绑定参数:日期属于截至日期参数

这里需要注意的是,如果你使用的是最新版本,还需要在字段绑定参数后,将默认的明细过滤层级修改为新建列过滤层级,不然会影响同期值的展示:

4、新建仪表板,添加过滤组件-时间过滤组件-年月

5、过滤组件绑定参数

设置过滤组件,绑定参数,绑定截至日期参数

最终结果如下:

 

02

需求:筛选年月区间,展示时间区间内当年值及对应同期值(不可跨年)

分析:假如筛选2024年1月-2024年9月

当年值:筛选开始日期的年份<=年份<=筛选结束日期的年份,筛选开始日期的月份<=月份<=筛选结束日期的月份

同期值:筛选开始日期的年份<=年份+1<=筛选结束日期的年份,筛选开始日期的月份<=月份<=筛选结束日期的月份

PS:因为我们设置了前提条件:筛选日期不可跨年,所以对于年份的判断直接用年份等于筛选开始或结束日期的年份也可以。

操作步骤:

1、新建2个时间参数,分别命名为:开始时间、结束时间

2、添加计算字段:

当年值(年月区间筛选):

DEF(SUM_AGG(值),[],[YEAR(数据日期)>=YEAR(开始时间), YEAR(数据日期)<=YEAR(结束时间),MONTH(数据日期)>=MONTH(开始时间),MONTH(数据日期)<=MONTH(结束时间)])

同期值(年月区间筛选):

DEF(SUM_AGG(值),[],[YEAR(数据日期)+1>=YEAR(开始时间), YEAR(数据日期)+1<=YEAR(结束时间),MONTH(数据日期)>=MONTH(开始时间),MONTH(数据日期)<=MONTH(结束时间)])

3、【数据日期】字段绑定参数:日期属于结束时间参数(属于开始时间参数也可以)

同样的,如果你使用的是最新版本,这一步也需要修改一下过滤层级,方法同上。

4、新建仪表板,添加过滤组件-时间过滤组件-年月区间

5、过滤组件绑定参数

设置过滤组件,绑定参数,绑定同名参数

最终结果如下:

 

通过参数,无论是哪种筛选方式,都能实现当年值与同期值的展示。

 

感兴趣的小伙伴自己动手尝试一下吧~

分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表