对于Excel用户来说,经常会遇到下列情况而烦躁不安,数字和文本混在一个单元格里、数据表中大量使用合并单元格、数据表是一个不方便进一步统计的二维表,甚至数据表被分散到了不同的工作表或不同的工作簿……这时,Power Query横空出世了。
自从微软公司发布Power Query for Excel以来,从最早的加载项形式,到如今与Excel完美结合,历经了多个版本的更新,现在已经成为Excel用于数据查询和数据清洗的重要功能,极大地提高了用户的工作效率。今天小编先和大家一起来了解Power Query中数据处理的准备工作——导入与展开。
处理数据需要数据源表,就拿一个JSON文件“开刀”吧。JSON是JavaScript Object Notation的缩写,这是近年来的主流数据格式之一,采用独特规则的文本格式来存储和表示数据,这种格式的文件扩展名就 是“.json”。
Power Query

图 1-1 用记事本打开 JSON 示例文件的原始数据
导入 JSON 文件
Power Query

Power Query
要点提示:从JSON文件导入数据到Power Query
Excel界面→【数据】→【获取数据】→【来自文件】→【从JSON】→定位目标文件→【导入】
【Power Query编辑器】→【主页】→【 新 建源】→【文件】→【JSON】→ 定位目标文件 → 【导入】
Power Query】

图 1-3 【列表】状态
列表里的每一条记录都是“Record”,表示这是被折叠的数据。单击任意一个“Record”以后可以将其展开,但是能看到的也只是众多数据中的一个,对处理数据毫无帮助。所以,刚才的单击步骤必须“咔嚓”删除。删除步骤的操作非常简单,只要在【查询设置】的【应用的步骤】窗格里单击最后一个“导航”步骤左边的删除符号,这个列表就被“打回原形”了,如图 1-4 所示。

图 1-4 删除步骤
难道只能“望表兴叹”了?当然不是,只要把【列表】转换成【查询表】就行了。在新冒出来的 【列表工具转换】选项卡下单击【到表】按钮,在弹出的【到表】对话框里虽然还有一些设置,但基本上都可以忽略,直接单击【确定】按钮,然后这个【列表】就华丽地变身为【查询表】了,如图 1-5 所示。如此一来,【转换】和【添加列】选项卡里也不再是“灰蒙蒙”的一片了。

图 1-5 将【列表】转换为【查询表】
要点提示:将列表转换为查询表
【Power Query编辑器】→选取列表→【列表工具转换】→【到表】→输入分隔符→处理附加列→ 【确定】
展开数据
不过刚才的操作只是转换,并没有对表里的内容做任何修改,所以查询表里仍然是一堆 “Record”。要处理这些数据肯定不能逐个单击,而是要单击标题右端的【展开】按钮,如图 1-6 所示,或者单击【转换】选项卡下的【展开】按钮来处理整列。使用这两种展开方式所弹出的窗格(对话框)虽然有细微的差异,但总体功能还是一致的。

图 1-6 将折叠的数据整列展开
展开后窗格(对话框)的“长相”有点类似于筛选窗格,其选择方式也和“筛选”如出一辙,需要展开哪些列,只要勾选标题名前的复选框即可。此处当然是要选择所有列,保持默认设置即可,最后单击【确定】按钮,一整列的“Record”就全部展开了。
这里有两个设置需要关注。一个是当数据列数很多的时候,供选择的列并不会全部显示出来, 所以会有一个【列表可能不完整】的警示标记,只要单击右边的【加载更多】按钮就可以显示完整的列表。
Power Query
要点提示:展开整列数据
【Power Query编辑器】→【展开】→【加载更多】→选择展开列→选择是否需要【使用原始列名 作为前缀】→【确定】
【Power Query编辑器】→选取对象→【转换】→【展开】→【加载更多】→选择展开列→修改或删除【默认的列名前缀】→【确定】
接下来再单击列标题右端的【展开】按钮时,会有一个选项,这里选择【扩展到新行】即可,如图 1-7 所示。

图 1-7 将 List 转换为 Record
在历经了五次【展开】或【扩展到新行】操作以后,最终的数据才会完全显露出来,一共 1000 行、11 列。
会遇到各种问题,小编讲解的上述技巧,你学会了吗?
