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

PowerBI如何提取单元格列表内首个记录的指定字段新增列

错误原因

你之前的代码无法运行有两个核心问题:

  • 取值逻辑错误:tableInfoFiltree[filles]{_}是从整表的filles列按行序号全局取值,没有定位到当前遍历行的对应单元格
  • 字段、列名不匹配:你描述的目标列名是fille、要提取的字段是avancement,但代码里写的列名是filles、提取字段是[nom],和需求不一致
最简实现方案

不需要编写额外自定义函数,直接在Table.AddColumn的each块内取当前行值即可,代码如下:

tableDev = Table.AddColumn(
    tableInfoFiltree,
    "Dev",
    each
        // 空值判断避免索引越界报错
        if [fille] = null or List.IsEmpty([fille]) then null
        else [fille]{0}[avancement],
    type text
)
逻辑说明
  • each块内直接写[列名]就代表当前遍历行对应列的单元格值,不需要通过整表索引定位
  • M语言中List的索引起始值为0,[fille]{0}即取fille列List内的第一个Record
  • 追加[avancement]即可提取第一个Record中对应的目标字段值
  • 提前判断null和空List的场景,避免某行数据缺失时抛出索引越界错误
自定义函数实现修正

如果需要拆分逻辑用自定义函数实现,按如下写法即可正常传入单元格内的List参数:

// 定义提取函数,入参为fille列存储的List类型值
getFirstAvancement = (cellList as list) as any =>
    if cellList = null or List.IsEmpty(cellList) then null
    else cellList{0}[avancement],
// 新增列时直接将当前行的[fille]作为参数传入函数
tableDev = Table.AddColumn(tableInfoFiltree, "Dev", each getFirstAvancement([fille]), type text)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 01:01:01