在准备数据的过程中,最常见的问题之一是从错误格式的列中提取含义。如果在某列中有一些列分隔符分割的代码或值,则可能需要将它们拆分为多个列。
在Excel中已经有许多函数公式,通过组合使用这些公式可以帮助我们从错误格式的文本中提取我们所需要的值,比如函数LEFT, MID, RIGHT, FIND, SEARCH, LEN等。但通常,提取所需信息的逻辑需要使用复杂的公式,而且很难随着时间的推移进行维护,因此当数据源发生变化的时候,还需要将公式手动扩展到新的行列中。
Excel的【数据】选项卡中还有一个【分列】的功能,可以帮助你将一列拆分成多列。但是,当你需要加载一个新的表格时,你就需要重复之前分列的步骤,或者使用宏和VBA。
在本节中,你可以学习如何使用PowerQuery来解决这个问题。你会发现PowerQuery编辑器非常有用,特别是当你需要经常重复相同的工作、使用大型数据集或者需要长期维护报表时。
本节我们会使用一个虚拟的案例来进行实际的讲解。
如下图2-1所示,我们拿到了一个数据源,其中Category(品类)、Size(尺码)、Color(颜色)的信息都包含在C列【Product Number】中,用 “-”连接。由于业务需求,我们需要把品类、尺码、颜色的信息从C列中,提取出来。
相信大多数使用过Excel的小伙伴都可以运用一些【基本函数】,或者【分列】的功能获得他们所需的信息。
现在我们将带大家学习如何使用【PowerQuery编辑器】提取信息。
练习1:【拆分列】
步骤1:【导入数据】
新建一个Excel工作簿,通过【数据】-【获取数据】-【来自文件】-【从工作簿】,导入“C02E02”数据源(图2-2)。进入【导航器】对话框后,勾选【选择多项】- 选中Categories,Colors,Products,然后点击【转换数据】,进入【PowerQuery编辑器】界面。(图2-3)
步骤2:【将第一行用作标题】
进入编辑器界面后,我们可以看到三张表,已经被添加至左边的【查询窗格】,通过中间的【预览窗格】我们发现【Colors】查询的首行并不是标题,而写着Column1、Column2,真正的标题在第一行(图2-4)。
这时我们只需点击选项卡【主页】-【将第一行用做标题】,即可将第一行的内容,提升为标题。在这个案例中0【Categories】查询也是同样的情况,我们用同样的操作将【Categories】的首行提升为标题。
步骤3:【拆分列】
选择查询【Products】,在【预览窗格】选中【ProductNumber】列,点击选项卡【转换】-【拆分列】-【按分隔符】,如图2-5。
在弹出【按分隔符拆分列】的对话框中,内容已经默认设置完成,直接点击确认即可,如图2-6。
大家也可以打开对话框中的【高级选项】,可以看到拆分内容均已默认设置。
步骤4:【重命名拆分的列】
经过步骤3【Product Number】拆分为4列,我们按照对应的内容修改标题名为 Category、Short ProductNumber、Size、Color。
进行到这里,我们会发现【拆分列】的工作已经完成,品类、颜色、尺码的编号都已经被提取到单独的列中并且重新命名。
以上操作步骤也同时被PowerQuery编辑器记录。即使数据源更新,也只需点击一下【刷新】,报表就会自动更新,无需重复劳动。
到此,带有【分隔符】的数据提取工作已经完成,如果没有进一步操作,我们就可以点击【主页】-【关闭并上载】将整理好的数据加载至Excel中,最后保存工作簿即可。
*完成上述步骤后,可以将本示例工作簿保存为【C02E02– P1】,之后的练习中会继续用到。