You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Power Query中对列集合使用List.RemoveNulls移除各列空值?

在Power Query中为每列移除空值并生成新表格

针对你现有的tblTest表格,要实现每列单独移除空值并生成新表的需求,我直接给你完整的解决方案和详细解释:

完整M代码

let
    Source = Excel.CurrentWorkbook(){[Name="tblTest"]}[Content],
    // 遍历所有列,筛选出每列的非空行并仅保留当前列
    ProcessColumns = List.Transform(Table.ColumnNames(Source), 
        each Table.SelectRows(Source, (row) => not List.IsEmpty({row[_]}))[[_]]),
    // 将处理后的单列数据合并为完整表格
    CombineTables = Table.FromColumns(ProcessColumns, Table.ColumnNames(Source))
in
    CombineTables

代码分步解释

  • 数据源获取Source行就是你已经导入的tblTest表格,确保这里的Name="tblTest"和你的实际表格名称完全一致。
  • 逐列处理空值
    • Table.ColumnNames(Source)先获取所有列的名称列表;
    • List.Transform遍历每个列名,对每一列执行筛选:Table.SelectRows会保留当前列不为空的行,[[_]]是Power Query的快捷写法,用来只提取当前处理的这一列(避免带出其他列的数据)。
  • 合并生成新表Table.FromColumns把所有处理后的单列数据组合成新表格,同时沿用原表格的列名,Power Query会自动在列数据长度不足的位置填充null

最终效果

处理后的表格会像这样,每列只保留原列的非空值:

Col1Col2Col3Col4
1214
23nullnull
null5nullnull

内容的提问来源于stack exchange,提问作者Aye_Aye_Frey

火山引擎 最新活动