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

如何在含16.0/15.0等值的列指定位置插入双引号并跳过已存在项?

解决Power Query中Screen列插入双引号的问题

原代码报错原因

  • Table.TransformColumns参数格式错误:正确结构应为Table.TransformColumns(表名, {{列名, 转换函数}, ...}),你写错了列名与函数的嵌套结构
  • each表达式里需用_指代当前列值,而非[Screen]
  • 重复的条件判断可以合并,无需多次写if分支

正确实现代码

实现逻辑:仅当列值包含16.0/15.0/14.0、文本长度足够且第5位无引号时,才插入双引号,否则保留原内容。代码如下:

#"Insert double quote" = Table.TransformColumns(
    #"Remove unwanted charachter",
    {
        {"Screen", each 
            let
                targetValues = {"16.0", "15.0", "14.0"},
                containsTarget = List.AnyTrue(List.Transform(targetValues, (val) => Text.Contains(_, val))),
                hasQuoteAtPos = Text.Length(_) > 4 and Text.Range(_, 4, 1) = "\"""
            in
                if containsTarget and not hasQuoteAtPos then
                    Text.Insert(_, 4, "\"""")
                else
                    _,
            type text
        }
    }
)

代码说明

  • targetValues:把需要匹配的数值放在列表中,后续新增或修改值只需调整列表即可
  • containsTarget:用List.AnyTrue批量判断当前值是否包含列表中任意目标值,简化重复判断
  • hasQuoteAtPos:先检查文本长度(避免索引越界报错),再判断第5位(Power Query索引从0开始,对应索引4)是否已有双引号
  • Text.Insert(_, 4, "\""""):Power Query中双引号需用转义符表示,"""等价于一个双引号,插入位置设为索引4对应第5个字符位置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 20:04:56