Excel之PowerQuery一次性删除所有空列
粉丝中有人向我反馈因特殊原因看视频有障碍,希望我加字幕,不好意思,我完全理解您的情况,但是加字幕比写文章还耗费时间,要根据时间轴加内容,AI字幕暂时并不完美。如果视频有障碍时,可以考虑看文章,当您对具体点击位置没明白时可以参考视频。祝工作顺利!
有如下一张表:

将其导入到PowerQuery中:

一、不完美的删除空列
1、点【转换】~【转置】

2、点【主页】~【删除行】~【删除空行】

3、点【转换】~【转置】

但是这样做表头没了,也不方便再添加回来。
二、我的方法
不适合多行表头与合并单元格,多行表头与合并单元格的表请自行研究方法,需要你亲自体会,才知道以后应该如何做表。
1、将表导入PowerQuery

2、点【主页】~【将第一行用作标题】~【将标题做为第一行】

3、点【转换】~【转置】

4、添加步骤,提示下图红框之内的表头


注:【1】Table.ColumnNames 返回表中列标题(字段名)
【2】List.Skip 跳过列表中N个元素


5、添加步骤,删除满足条件的行
我们现在的目标是让Column2、Column3、Column4这三个列为空的行删除
那代码应该写成:

关于Table.RemoveMatchingRows函数可以到我们的PowerQuery M函数总结中去找

6、修改第5步的代码
上面是第5步的代码,其中 {"Column2","Column3","Column4"} 就是第4步表头那个步骤,所以可以改成
接下来我们写活 [Column2=null,Column3=null,Column4=null]
我们要使用到 Record.FromList 函数,注意别将Key和Value值写反

表头我们有现成的,但是表头对应的null值我们没有,表头有几个,就有几个null,所以我们会用到List.Repeat和List.Count函数


好了,现在我们可以将第5步的公式写成:

7、点【转换】~【转置】

8、点【主页】~【将第一行用作标题】~【将第一行用作标题】

我讲的代码是通用的,你可以直接拿来用,为了自己和同事的有更多的休息时间,请不要在非打印或观赏表中使用多行表头或合并单元格。

友情提示:只要你学习了PowreQuery合集中的所有内容,就可以发挥自己的想象力去创造一切自己想做的事情。只将笔记下载不学习是不行的,你至少要先知道有什么功能,当你遇到问题时你才能去找。
PowerQuery合集:https://www.bilibili.com/video/BV1oa4y1j75e
PowerQuery答网友问合集:https://www.bilibili.com/video/BV1yM4y1T7oP