链接回表是PowerPivot常用的一种DAX查询模型数据表信息的方式,不仅能把查询到的信息载入Excel工作表中,而且查询出来的表还可以当作工作表中的表再次引入Excel数据模型,与原有模型内的表格搭配使用。
示例:使用链接回表创建考勤底表
统计员工考勤是一种常见的管理需求,考勤统计中的主要难点在于考勤数据记录中缺勤记录的不确定。一般情况下,当纳入考勤统计的人员花名册确定时,需要结合考勤周期(通常是自然月)的天数,先绘制一张人数为行数、日期为列数的二维统计表,然后把结果逐项填入,确保统计完整,如图17-101所示。

图17-101传统考勤表统计布局
众所周知,这种表格数据结构不仅不符合数据透视表的数据源结构,而且效率很低,也不能和考勤机的原始数据进行快速匹配。但如果能够获得一张以人数结合天数为总行数,并且包含所有人员工号与日期组合的一维表来作为统计基本考勤信息底表,那么通过数据透视表即可获得最终的统计效果,如图17-102所示。

图17-102每一个工号根据天数获得相应行数的底表记录
在传统的Excel处理方式中,要想取得图17-102中的考勤底表是一个难点。下面介绍使用链接回表的方式来快速生成考勤底表,具体操作步骤如下。
步骤1

图17-103将日期表添加到数据模型
步骤2

图17-104外部获取花名册信息
步骤3

图17-105【预览并筛选】功能
步骤4

图17-106向PowerPivot载入数据
步骤5

图17-107从模型中加载一个链接回表到工作表环境
完成后获得一个花名册的链接表副本,如图17-108所示。

图17-108创建初始链接回表
步骤6
Evaluate
GENERATE(SUMMARIZE('花名册',[工号]),'日期表')
单击【确定】按钮获得所需的考勤底表,如图17-109所示。

图17-109对链接回表进行DAX编辑
表达式解析:
Evaluate是必需的声明语句,可以使用换行或空格将具体的DAX表达式隔开。GENERATE语法如下。
GENERATE(table1,table2)
将两个列表进行组合运算,返回两个表的交叉连接表。
SUMMARIZE语法如下。
SUMMARIZE(Table,[GroupByColumnName1],…,[Name1],[Expression])
创建按指定列分组输入表的摘要。此处花名册的信息较多,而且可能存在工号重复出现的情况,因此将【花名册】表按照“工号”字段汇总来获得单独的工号列表,以便参与交叉连接计算。
提示:
