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

Power BI中Power Query自定义函数报错求助:文本列表包裹合并

Power Query自定义函数解决方案

错误原因分析

你碰到的Expression.Error: We cannot convert the value "[Company].[GB02]" to type List.错误,核心是使用each运算符时把单个文本值当成列表类型处理了——要么是误将单个元素的处理结果传入了需要列表参数的函数,要么是步骤逻辑混淆了列表级操作和元素级操作。

最简解决方案(无需额外拆分表格函数)

直接基于列表操作实现需求,比先转表格更高效,完整自定义函数代码如下:

let
    WrapCompanyCodes = (inputText as text) as text =>
    let
        // 1. 按逗号拆分字符串为列表,同时去掉每个元素前后的空格
        SplitList = List.Transform(Text.Split(inputText, ","), each Text.Trim(_)),
        // 2. 给每个元素添加[Company].[ ]包裹
        WrappedList = List.Transform(SplitList, each "[Company].[" & _ & "]"),
        // 3. 用逗号连接列表为最终字符串
        Result = Text.Combine(WrappedList, ",")
    in
        Result
in
    WrapCompanyCodes

若要保留已有List2Table函数的调整方案

假设你的List2Table是将拆分后的列表转成表格,需先把表格转回列表再处理,调整后的代码如下:

let
    WrapCompanyCodes_WithTable = (inputText as text) as text =>
    let
        SplitList = List.Transform(Text.Split(inputText, ","), each Text.Trim(_)),
        // 调用你的List2Table函数转成表格
        SplitTable = List2Table(SplitList),
        // 从表格提取列值转回列表(假设表格列名为"Column1")
        ExtractedList = SplitTable[Column1],
        WrappedList = List.Transform(ExtractedList, each "[Company].[" & _ & "]"),
        Result = Text.Combine(WrappedList, ",")
    in
        Result
in
    WrapCompanyCodes_WithTable

测试验证

输入示例"GB02, NL01, IT05, FR03",两个函数都会输出:
"[Company].[GB02],[Company].[NL01],[Company].[IT05],[Company].[FR03]"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 10:17:09