图1.67中包含两张结构相同的多表头结构数据表,如何分别对它们实现结构化处理并进行追加?这种情况下,需要使用变量函数,利用变量函数自动处理所有的表结构,最后实现追加,原理是创建的这个函数有输入值和输出值,输入值是未经处理的表,输出值是处理干净的表。以下是具体操作步骤。
图1.67 包含多表头的多个工作簿原始数据
01 将上一小节中的【查询】进行复制(选择右键菜单的【复制】选项),见图1.68。
图1.68 复制原有的查询
02 选中复制的新查询并更名为【转换】,之后单击【查询】-【高级编辑器】选项,在弹出的【高级编辑器】对话框的编辑框中添加“(t)=>”,删除高亮部分的内容,将内容Table.Transpose(#"Changed Type")改为Table.Transpose(t),单击【完成】按钮完成设置,如图1.69所示。
图1.69 选择修改复制查询中的M代码
03 完成创建函数后可以继续读取多表数据,读取【文件夹】类型数据,并使用Excel.Workbook函数提取Table,然后扩展其中的【Data】列,删去其他列,结果见图1.70,具体步骤请参照前文内容,此处不再赘述。
04 选中查询,单击【添加列】-【自定义列】选项,在【功能查询】处选择【转换】,之后单击【确定】按钮,见图1.71。
图1.70 以文件夹形式读取原始数据
图1.71 添加调用自定义函数操作
05 高亮选中【转换】列中的Table,可在快照中看见转换成功的内容,删除【Data】列,并展开【转换】列,见图1.72和图1.73。
图1.72 删除【Data】列并展开转换列中的内容
图1.73 展开后的数据表结构