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

Power Query如何将含小写字母的行置为null并替换指定前缀行

问题修正方案

你的问题出在判断非全大写行的逻辑上:原代码里[FRUITS] = Text.Lower([FRUITS])仅会匹配完全小写的文本,而像"vitamin C"这种大小写混合的内容无法触发该条件。

要实现「所有包含小写字母的行(非全大写)置为null」的需求,只需把判断条件改为检查原文本是否不等于其全大写版本,或者直接检查文本中是否存在小写字母。

修正后的代码

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCvMMcfT19FNwVNBwcg1x1HV2DPIPcfVz1VSK1YlWKsssSczNzFNwBvNQhFzBPF9Hdz/XYM9QXzCvKjMvGaESTAR4+AcDcZB/aDBC0M3fx9NZwdHZ00UpNhYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [FRUITS = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"FRUITS", type text}}),
    Custom1 = Table.AddColumn(#"Changed Type", "WITHOUT LOWERCASE", 
                            each 
                                if Text.Start(Text.From([FRUITS]),5)="FOLIC" then "NOT VITAMIN"
                                // 修正:判断原文本是否不等于全大写版本(即存在小写字母)
                                else if [FRUITS] <> Text.Upper([FRUITS]) then null
                                else [FRUITS]
                            )
in
    Custom1

另一种可选实现(直接检查小写字母)

如果你想更直观地检查是否包含小写字母,可以用Text.ContainsAny配合小写字母集合:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCvMMcfT19FNwVNBwcg1x1HV2DPIPcfVz1VSK1YlWKsssSczNzFNwBvNQhFzBPF9Hdz/XYM9QXzCvKjMvGaESTAR4+AcDcZB/aDBC0M3fx9NZwdHZ00UpNhYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [FRUITS = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"FRUITS", type text}}),
    Custom1 = Table.AddColumn(#"Changed Type", "WITHOUT LOWERCASE", 
                            each 
                                if Text.Start(Text.From([FRUITS]),5)="FOLIC" then "NOT VITAMIN"
                                // 检查文本是否包含任意小写字母
                                else if Text.ContainsAny([FRUITS], {"a".."z"}) then null
                                else [FRUITS]
                            )
in
    Custom1

两种方案都能正确处理"vitamin C"这类大小写混合的行,将其置为null,同时保留全大写的内容,并且正确替换以FOLIC开头的行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:25:37