如何实现月季年 阶段统计表 动态取数

需求:
数据库中存储了某车间不同品类的生产数据,想要实现按季度、半年统计各品类不同时期的数据,其中月份数据以 yyyy-MM 形式存储。 如下图所示

ZSZGM63J8W677NB97png

数据如下:

ETTBLEML01XRJ9UICNB4png

分析:
要实现这种类似效果其关键是如何动态处理 1 2 3 月 1 季度、4 5 6 月 2 季度依次类推的取数逻辑。
过程: 以半年为扩展基础,使用 to(1,2) 函数扩展,在此基础上,再次扩展出季度,1、2 季度以上半年也就是 1 为计算基数 算出季度。月份依次类推。

TWCV2Y9_TZB03GIUIMSpng

报表实现:

LH0BOHTRNHRMIP3_TTWpng

其中:
A2 表达式为 =to(1,3)+3*(A3-1),显示值表达式为:string(value())+“月”
左主格为 A3;
A3 表达式为 =to(1,2)+2*(A4-1),显示值表达式为:string(value())+“季度”
左主格为 A4;
A4 表达式为 =to(1,2)
B2 表达式为
=ds1.select(品类 A,month(datetime(yf+“-01”,“yyy-MM-dd”))==A2)
其余单元格无特别设置直接取数或者汇总计算。

注:参数面板非本文重点部分省略。

最终效果:
ZSZGM63J8W677NB97png

实例报表点击这里下载