我给客户转换了一个表格,操作很简单,但是大多数人不一定会

有客户遇到了一个问题。他有下面的一个表格:

他希望的表格结果是这样的:

仔细想想,除了粘贴,复制,选择型粘贴外,还有什么更好的办法吗?

当然,更好的办法来自于Power Query。我使用Power Query完成了这个转换工作,同时也使这个工作变成了一个自动化的操作。

使用Power Query完成转换

首先,使用快捷键Ctrl+T将数据区域转换为表格:

然后在数据选项卡中,点击从表格:

来到Power Query编辑器中,

在转换选项卡,点击替换值,

在对话框中,将查找值输入为null,替换值输入一个在这些单元格中不存在的符号,例如“|”(键盘上回车键上面的一个符号),

点击确定后,替换完成,

然后,在Power Query编辑器的右边面板区域,最后一个步骤上,点击鼠标右键,

选择“插入步骤后”,在新步骤(缺省名称为自定义1)的公式编辑器中,输入公式:

=Table.FromValue(Text.Combine(替换的值[列1],"="))

得到结果,

这里简单解释一下这个公式(关于Power Query公式,我们会在E学会Power Query中级课程中详细介绍):

内部的Text.Combine是将一列文本合并成一个值,用到了一个分隔符号“=”(任意一个表格中没有出现的符号都可以),然后通过函数Table.FromValue将这个值转换为一个表格。

然后选择“转换”选项卡中的拆分列:

在对话框中,将分隔符选择为自定义,然后输入第一次替换null值的符号(“|”),点击“高级选项”,选择“行”,

点击确定,得到结果,

在“添加列”选项卡中,点击“自定义列”,

然后在对话框中输入公式:

=if Text.Middle([Value],0,1)="=" then [Value] else "=" & [Value]

点击确定,得到结果,

删除Value列,

继续在转换选项卡中,点击拆分列,

保持所有默认选择不变,点击确定:

删除第一列,

将各列修改名称,并上载至Excel即可,

大功告成!

(0)

相关推荐