如何处理多列拆分后的组合?

对于列的拆分一般使用的比较多,也相对容易,通过菜单栏上的拆分列就能搞定,那如果是多列拆分又希望能一一对应的话需要如何操作呢?如图1所示,这是一份香港和台湾的电影分级制度,需要把对应的分级制度和说明给对应,那如何进行处理呢?目标效果如图2所示。

图1 电影分级制度原数据
图2 清洗后的目标结果

首先要判断的就是如何进行拆分,拆分依据是什么?比较明显的是分级列,分隔符为全角字符下的逗号,而说明列则是换行符进行分列。2列分别是2种中不同的分隔符进行的分割。
如果直接在导入数据后对列进行分割会有什么样的效果呢?如图3所示,把对应的列都根据分隔符来进行分割。

图3 直接进行分列处理

但是这种分列效果肯定不是我们所希望,因为我们要的是组合对应的数据,所以得想办法先要进行组合,这里可以使用List.Zip进行组合,分列后的数据是列表格式,所以可以对2列数据分别进行分割后在进行组合,可以在添加列中使用如下代码。

List.Zip
    ({
     Text.Split([分级],","),
     Text.Split([说明],"#(lf)")
    })

通过对文本进行拆分后并重新组合成新的列,然后展开列表得到图4的结果,这时可以看到每组的数据已经是一一对应的了。

图4 展开ListZip合并的列

但是如何现在直接进行展开的话,也会有问题,我们需要的是2列平行的数据,而展开的时候是展开到列,变成2列的数据了,如图5所示,这又不是我们所希望的结果。

图5 直接展开组合数据列

这时只需要在展开的时候选择提取值的选项,这个功能相对平时用的不多,但是对于目前的这种状况非常实用,如图6所示在使用分隔符合并的时候需要注意的就是,此分隔符需要在2组数据中都未出现过,可以使用特殊字符进行。

图6 使用分隔符合并提取值

这样在提取数据后就能看到是对应的数据直接通过特殊分隔符合并成为单一的文本,如图7所示。

图7 对应列数据合并成单文本数据

最后再通过合并时的特殊分隔符进行分列即可得到所需要的数据格式,最后再更改下标题列名即可

图8 通过特殊分隔符进行分列

你可能感兴趣的:(如何处理多列拆分后的组合?)