首发 公众号:Excel办公实战
正烦没有合适的素材,今天再论坛就看到一个不错的案例,如果你再EH上看到,那个4楼回答就是小编啦~只是那里没有过程解读!
需求说明:将原本两列一组的多组数据整理成单独的两列
问题不难,也就是把其他列依次追加到一起即可!
![6ed19273f91b148b078f3cde5ee731de.png](https://img-blog.csdnimg.cn/img_convert/6ed19273f91b148b078f3cde5ee731de.png)
我们这里介绍两种几种处理方法
技巧法-循环引用
1、在第一组数据的末尾输入=C2
2、名称框,输入A33:F94(每组33行*3组+1标题)
3、Ctrl+D和Ctrl+R填充个公式
4、复制出A1:B94就是转换后的结果!
![0d3a98f9878bd51373bbc024dd054c0f.gif](https://img-blog.csdnimg.cn/img_convert/0d3a98f9878bd51373bbc024dd054c0f.gif)
PQ法-转换更灵活这才是今天的主题,PowerQuery作为BI组件之一,定位在ETL,所以在数据转换领域非常强大,一起来感受一下(非0基础)
M函数:
=Table.Combine(List.Transform(Table.Split(Table.Transpose(源),2),Table.Transpose))
动画演示:
![f65dabc72526ac192a46c939e69b7e4e.gif](https://img-blog.csdnimg.cn/img_convert/f65dabc72526ac192a46c939e69b7e4e.gif)
思路分析:1、PQ中按列分组的没有合适的方式,但是Table按行或者List切割都有对应的方式,这里用的前者!2、Table.Transpose 和工作表函数转置一个意思,我们先转置一下,这样两列一组就转成了两行一组3、分组后,各组在一个list中,我们再分别再 转置 一次就恢复原本的格式4、再把各个分组后的table使用Table.Combine合并即可
使用List.Split的思路也是一样!
![83bd3cc7cc8a1f82636e658ebd89397d.png](https://img-blog.csdnimg.cn/img_convert/83bd3cc7cc8a1f82636e658ebd89397d.png)
由于数据源加载的时候是列表的方式,如果以后新增组也会自动转换,比技巧法更加灵活!!VBA法-随心所欲
![84620deb319c6f8b0e36354de5264f16.gif](https://img-blog.csdnimg.cn/img_convert/84620deb319c6f8b0e36354de5264f16.gif)
![239f99e8381e79c41240cb28a59e97b9.png](https://img-blog.csdnimg.cn/img_convert/239f99e8381e79c41240cb28a59e97b9.png)
三种方式,根据自己的知识储备和实际场景进行选择吧 !
今天就到这里,say88!