需求:从外部数据源(图一)提取数据,按特定报表格式(图二)自动提数填充。
需求分析与技术难点
图一:外部数据源格式
图二:目标报表格式
技术难点:
- 所需数据分散在很多字段里,需要SQL知识转换数据源格式
- 报表格式特殊,数据区域非连续,每个年级分为上下两个区域,如果做成多个子表,定义数据项和设置提数公式都非常复杂
技术方案:把加工后的数据源根据学校和年份动态筛选到一个表,以这个表为新的数据源,通过Excel内置函数SUMIFS()填充目标报表。
实现步骤
步骤1:创建外部数据源视图【v_unPivot_RawDt】,通过unpivot处理使格式简化。
外部数据源视图(unpivot处理后格式简化)
步骤2:进一步把上面视图转化为新视图【v_data2】,方便提数。
新视图v_data2(进一步整理,便于提数)
步骤3:创建主表、明细表,定义数据项。
主表和明细表设计
数据项定义
步骤4:创建表间公式,根据主表下拉选项提取数据到中间表。
表间公式设置(根据下拉选项动态提数)
步骤5:在Sheet1的目标报表内写入SUMIFS公式,提取Sheet2数据,最终完成复杂报表的自动填充。
最终报表效果
附录:SQL源代码(unpivot处理逻辑)