You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerQuery/PowerBI:如何基于Name列提取数据生成分组列或分表?

PowerQuery/PowerBI 基于Name列提取分区数据的两种解决方案

需求一:新增一列标注每行所属的分区标题

假设你的源表中,Name列包含分区标题行和数据行(标题行是每个分区的起始行,后续是对应的数据内容),操作步骤如下:

  1. 打开PowerQuery编辑器:在PowerBI的「数据」选项卡点击「从表格/范围」加载源数据,或右键已加载的表选择「编辑查询」
  2. 添加「是否标题」判断列:
    • 点击「添加列」选项卡→「自定义列」,输入判断公式(请根据你的实际数据特征修改)
    • 示例公式(如果标题行Name不是数字开头,数据行是):=IF(ISNUMBER(VALUE(LEFT([Name],1))), FALSE, TRUE)
    • 点击「确定」后,新增一列标记每行是否为标题行
  3. 向下填充标题:
    • 选中「是否标题」列,点击「转换」选项卡→「填充」→「向下」
    • 此时所有数据行都会被填充上方最近的标题行内容
  4. 整理列:
    • 把填充后的列重命名为「分区标题」,删除不需要的中间列即可

需求二:为每个分区标题创建单独的新表

基于需求一的结果操作,分两种方式:

方式1:手动拆分(适合分区少的情况)

  1. 完成需求一的步骤,得到带「分区标题」列的表
  2. 筛选每个分区的数据:
    • 点击「分区标题」列的筛选按钮,选择第一个分区标题,仅显示该分区的数据
    • 点击「开始」选项卡→「关闭并上载至」,选择「仅创建连接」或直接上载为新表,命名为对应分区的名字
    • 重复上述步骤,为每个分区生成单独的表

方式2:批量生成(适合分区多的情况)

  1. 完成需求一的步骤,得到带「分区标题」列的表
  2. 打开「高级编辑器」,替换现有M代码(请替换代码中的你的源表名称为实际表名):
let
    源 = 你的源表名称,
    // 步骤1:判断是否为标题行(请根据你的数据调整逻辑)
    添加是否标题 = Table.AddColumn(源, "是否标题", each IF(ISNUMBER(VALUE(LEFT([Name],1))), FALSE, TRUE)),
    // 步骤2:向下填充标题到数据行
    填充标题 = Table.FillDown(添加是否标题, {"是否标题"}),
    // 步骤3:提取所有唯一的分区标题
    分区列表 = List.Distinct(填充标题[分区标题]),
    // 步骤4:为每个分区生成单独的表
    生成分区表 = List.Transform(分区列表, (当前分区) => 
        Table.SelectRows(填充标题, each [分区标题] = 当前分区)
    ),
    // 步骤5:将分区表列表转换为可操作的表结构
    转换为表 = Table.FromList(生成分区表, Splitter.SplitByNothing(), {"分区数据"}),
    // 步骤6:添加分区名称列用于识别
    添加分区名称 = Table.AddColumn(转换为表, "分区名称", each Table.FirstValue([分区数据][分区标题]))
in
    添加分区名称
  1. 运行代码后,每行对应一个分区的数据表,点击「分区数据」列的表格图标打开子表,再点击「关闭并上载至」即可生成单独的新表

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 20:01:11