在Table.TransformColumnNames之后,为什么列名称在后续步骤中还原为以前的名称?

时间:2019-01-09 13:20:43

标签: powerquery m

我的代码中有一行将我的列名转换为大写:

#"Renamed Columns3" = Table.TransformColumnNames(Source, Text.Upper),

这是代码的最后一步,可以正常工作。

但是,当我添加以下部分时,列标题会恢复为以前的随机大小写形式。

Index= Table.AddIndexColumn(Source, "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"

您可能会猜到,我首先对列名使用大写字母的原因是,以便随后的步骤可以标识所有具有正确名称(即包含“ EMAIL_OPTIN”)的列-原始源数据具有各种大写形式,这似乎阻止了上述步骤合并所有相关列。

有人知道为什么上壳体消失了吗?似乎甚至在合并列之前就发生了,因为仅合并了(本来是)大写的列,而那些原来是小写或句子大小写的列仍被排除在外。

1 个答案:

答案 0 :(得分:1)

添加新的代码段时,不会引用带有重命名标题的步骤。相反,您可以参考“源代码”步骤(即在重命名之前具有标题的表)。 只需更改此行:

Index = Table.AddIndexColumn(#"Renamed Columns3", "Index", 0, 1)
相关问题