如何一键删除Power BI查询编辑器中的所有空表?
Power BI一键过滤SQL导入的空数据表方案
实现步骤与M代码
当你从SQL Server批量导入数据表到Power BI后,可通过以下M代码自动过滤所有仅含表头的空表,无需手动逐个删除:
- 打开Power BI,进入查询编辑器
- 找到从SQL Server导入的数据源根查询(即包含所有表列表的查询)
- 点击高级编辑器,替换原有代码为以下内容(注意替换
SQL服务器名和数据库名为你的实际信息):
let Source = Sql.Database("SQL服务器名", "数据库名"), // 为每个表添加行数统计列 AddRowCount = Table.AddColumn(Source, "RowCount", each Table.RowCount([Data])), // 筛选出行数大于0的非空表 FilterNonEmpty = Table.SelectRows(AddRowCount, each [RowCount] > 0), // 删除辅助统计列 RemoveCountColumn = Table.RemoveColumns(FilterNonEmpty, {"RowCount"}), // 可选:展开所有非空表的数据合并为单表(不需要合并可删除此步骤) ExpandTables = Table.ExpandTableColumn(RemoveCountColumn, "Data", List.Distinct(List.Combine(Table.Column(RemoveCountColumn, "Data") |> List.Transform(Table.ColumnNames)))) in ExpandTables
代码逻辑说明
Sql.Database:建立与目标SQL Server数据库的连接,获取所有表的元数据及对应数据Table.AddColumn:为每个表生成行数统计,判断是否为空表Table.SelectRows:自动过滤掉行数为0的空表Table.RemoveColumns:清理辅助统计列,保持数据结构简洁Table.ExpandTableColumn:(可选)将所有非空表的数据合并为单个数据表,若需单独加载每个非空表,可删除此步骤,直接加载过滤后的表列表
内容的提问来源于stack exchange,提问作者Pulkit Jain
相关产品推荐
相关产品推荐

