Power Query移除含特定字符串的姓氏字段值报错求助
Power Query代码错误排查与修正
错误原因
你的代码中,List.MatchesAny的lambda表达式里使用了[Person Surname]来引用字段值,但在Table.TransformColumns的each上下文环境中,当前正在处理的字段值应该用下划线_来指代,而非列名引用。这种错误的引用方式会导致Power Query无法正确识别要处理的值,最终所有字段都返回错误。
修正后的代码
= Table.TransformColumns( #"Move Company Names to New Column", { {"Person Surname", each if (Text.Length(_) > 20) or List.MatchesAny( {"Ltd","Limited","LLP","T/A","Plc"}, (s) => Text.Contains(_, s, Comparer.OrdinalIgnoreCase) ) then null else _ } } )
额外优化(可选)
如果「Person Surname」字段可能存在null值,为避免Text.Length函数报错,可以加入空值判断:
= Table.TransformColumns( #"Move Company Names to New Column", { {"Person Surname", each if _ = null then null else if (Text.Length(_) > 20) or List.MatchesAny( {"Ltd","Limited","LLP","T/A","Plc"}, (s) => Text.Contains(_, s, Comparer.OrdinalIgnoreCase) ) then null else _ } } )
内容的提问来源于stack exchange,提问作者Peter Mogford
相关产品推荐
相关产品推荐

