刚看到这位贴友的问题之后,看上去应该挺简单的,但是自己造好数据,准备着手的时候,还是花了一个小时才搞定,
一个比较常规的业务场景,所以共享出来,大家一起分享:
需求:

逻辑:
1.典型的二维交叉表,最先考虑的就是横向扩展和纵向扩展,但是,平常一般都是维度扩展表头,很少固定表头还要扩展的;
2.第二,扩展的列数是动态的,不知道具体要扩展多少列,所以,需要先获取这个列数;
数据源:

先计算出部门的数据量,方便表头的生成,条件属性,隐藏行
COUNT(UNIQUEARRAY(test.select(ColName2)))
这里有一个问题,我取的是部门的唯一计数值,
实际业务场景中,应该是去取每个分组的部门最大值;这个要是数据集sql写的话比较简单;
fr的数据集函数编写的话,还不会,有大神可以指点一下

第二步,获取需要重复表头的次数之后,这一步也是关键,想了好久,才摸索出来的;父格设置也是关键
SPLIT(REPEAT('部门,',3),',') 3可以获取部门总数量,A1替换
A1:左父格-无;上父格-无;
B1:左父格-A1;上父格-无;横向扩展
C1:左父格-A1;上父格-无;横向扩展
D1:左父格-A1;
A2:父格-默认
B2:左父格-A2;上父格-无
C2:左父格-B2;上父格-无
D2:左父格-A2;上父格-默认

结果如下:

|