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

Power Query新增自定义列遇NULL值转换错误问题求助

Power Query 产品名称匹配时NULL值错误解决方法

问题场景

主表为销售数据表,产品名称附带技术规格(如:2' H型铁棒),数据量庞大;另一张表仅存部分简化产品名称(如:铁棒)。通过Power Query新增自定义列匹配简化名称,无匹配项时返回NULL,后续步骤因无法将NULL转换为文本报错。

原代码问题分析

原代码用Table.SelectRows返回匹配的表格,展开后无匹配项会生成NULL值,后续文本处理步骤无法识别NULL,导致报错。

解决方案

通过List.FirstOrDefault直接获取第一个匹配的简化名称,同时指定无匹配时的默认值(可选择保留原产品名或自定义文本),避免生成NULL。

修改后的代码(单列匹配)

let
    Fonte = Lista_gerada_pelo_programa,
    #"Colunas Removidas" = Table.RemoveColumns(Fonte,{"Tomador - CNPJ", "Tomador - Razão Social", "CTe - Nº"}),
    #"Personalização Adicionada" = Table.AddColumn(#"Colunas Removidas", "NOVA.Produto", each 
        let
            matchedItems = List.Select(Lista_Variacoes[Variacoes], (x) => Text.Contains([Produto], x, Comparer.OrdinalIgnoreCase)),
            // 无匹配时返回原产品名,可替换为""或"无匹配"等自定义文本
            result = List.FirstOrDefault(matchedItems, [Produto])
        in
            result
    )
in
    #"Personalização Adicionada"

代码说明

  1. List.Select:从简化名称列表中筛选出包含在主表产品名中的项,生成匹配列表。
  2. List.FirstOrDefault:获取列表第一个匹配项,无匹配时返回指定默认值(这里保留原产品名,可按需修改)。
  3. 无需执行表格展开步骤,直接生成文本列,彻底避免NULL值问题。

扩展:同时匹配多列的处理代码

如果需要同时获取Lista_Variacoes中的Produto和Variacoes字段,可使用以下代码:

let
    Fonte = Lista_gerada_pelo_programa,
    #"Colunas Removidas" = Table.RemoveColumns(Fonte,{"Tomador - CNPJ", "Tomador - Razão Social", "CTe - Nº"}),
    #"Personalização Adicionada" = Table.AddColumn(#"Colunas Removidas", "匹配结果", each 
        let
            matchedRows = Table.SelectRows(Lista_Variacoes, (x) => Text.Contains([Produto], x[Variacoes], Comparer.OrdinalIgnoreCase)),
            matchedProduto = if Table.RowCount(matchedRows) > 0 then matchedRows{0}[Produto] else [Produto],
            matchedVariacoes = if Table.RowCount(matchedRows) > 0 then matchedRows{0}[Variacoes] else [Produto]
        in
            [NOVA.Produto = matchedProduto, NOVA.Variacoes = matchedVariacoes]
    ),
    #"Expandido匹配结果" = Table.ExpandRecordColumn(#"Personalização Adicionada", "匹配结果", {"NOVA.Produto", "NOVA.Variacoes"}, {"NOVA.Produto", "NOVA.Variacoes"})
in
    #"Expandido匹配结果"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 10:32:04