需求分析与技术难点

需求:从外部数据源(图一)提取数据,按特定报表格式(图二)自动提数填充。

外部数据源
图一:外部数据源格式
目标报表格式
图二:目标报表格式

技术难点:

  • 所需数据分散在很多字段里,需要SQL知识转换数据源格式
  • 报表格式特殊,数据区域非连续,每个年级分为上下两个区域,如果做成多个子表,定义数据项和设置提数公式都非常复杂

技术方案:把加工后的数据源根据学校和年份动态筛选到一个表,以这个表为新的数据源,通过Excel内置函数SUMIFS()填充目标报表。

实现步骤

步骤1:创建外部数据源视图【v_unPivot_RawDt】,通过unpivot处理使格式简化。

外部数据源视图
外部数据源视图(unpivot处理后格式简化)

步骤2:进一步把上面视图转化为新视图【v_data2】,方便提数。

新视图v_data2
新视图v_data2(进一步整理,便于提数)

步骤3:创建主表、明细表,定义数据项。

主表明细表定义
主表和明细表设计
数据项定义
数据项定义

步骤4:创建表间公式,根据主表下拉选项提取数据到中间表。

表间公式
表间公式设置(根据下拉选项动态提数)

步骤5:在Sheet1的目标报表内写入SUMIFS公式,提取Sheet2数据,最终完成复杂报表的自动填充。

最终效果
最终报表效果
SQL源代码
附录:SQL源代码(unpivot处理逻辑)