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

Power Query中Table.TransformColumnNames后列名还原问题咨询

问题原因与解决方案:Power Query列名大写转换失效的问题

嘿,这个问题的核心其实特别清晰:你把列名转成大写的操作确实生效了,但后续所有步骤都没基于这个处理后的表,反而又用回了原始的Source表!

你看,你写的#"Renamed Columns3" = Table.TransformColumnNames(Source, Text.Upper)这一步已经把列名统一成大写了,但后面的Index= Table.AddIndexColumn(Source, "Index", 0, 1)还是直接用了未处理的Source——这就相当于你费了半天劲把列名转成大写,转头又回到原始数据重新操作,之前的转换自然等于白做了。

结果就是,后续的List.Select只能识别原始数据里本来就是大写的"EMAIL_OPTIN"列,那些大小写混乱的列因为没经过转换,自然被遗漏了。

修正后的代码

只需要把后续所有步骤的起始数据源从Source替换成你转完大写的#"Renamed Columns3"就行,另外因为列名已经统一为大写,匹配字符串用大写的"EMAIL_OPTIN"会更稳妥:

#"Renamed Columns3" = Table.TransformColumnNames(Source, Text.Upper),
Index= Table.AddIndexColumn(#"Renamed Columns3", "Index", 0, 1),
// 列名已统一大写,直接匹配大写字符串更可靠
EmailList= List.Select(Table.ColumnNames(Index), each Text.Contains(_, "EMAIL_OPTIN")),
Merged = Table.CombineColumns(Index,EmailList,Combiner.CombineTextByDelimiter("", QuoteStyle.None),"MergedE"),
#"Merged Queries" = Table.NestedJoin(Index,{"Index"},Merged,{"Index"},"MergedE",JoinKind.LeftOuter),
#"Expanded Table2" = Table.ExpandTableColumn(#"Merged Queries", "MergedE", {"MergedE"}, {"MergedE"}),
#"Removed Columns3" = Table.RemoveColumns(#"Expanded Table2",{"Index"})
in #"Removed Columns3"

关键说明

  • 确保整个数据处理流程的每一步都基于转大写后的表,而不是原始的Source,这样所有后续操作才能用到统一大小写的列名。
  • 统一列名后,用大写的匹配字符串可以彻底避免大小写不匹配的问题,不用再担心遗漏任何包含目标关键词的列。

内容的提问来源于stack exchange,提问作者s.turn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:50:29