我给客户转换了一个表格,操作很简单,但是大多数人不一定会
有客户遇到了一个问题。他有下面的一个表格:
他希望的表格结果是这样的:
仔细想想,除了粘贴,复制,选择型粘贴外,还有什么更好的办法吗?
当然,更好的办法来自于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)