专栏名称: PowerBI战友联盟
微软 Power BI MVP BI佐罗 带你学习BI真经。
目录
相关文章推荐
51好读  ›  专栏  ›  PowerBI战友联盟

数据处理必备:PowerQuery 批量转换列名

PowerBI战友联盟  · 公众号  ·  · 2024-08-12 18:40

正文

请到「今天看啥」查看全文


在本文中,我们将介绍一些 批量替换列名的 简单和高级技巧。从基本的查找和替换到更复杂的公式,你可以同时将逻辑应用于多个列。

如果是修改单个列名,我们可以直接在 Power Query 中双击列名进行修改。

如果是具有相同规律的列名,例如添加前缀、将单词的首字母大写、替换下划线等。我们就可以使用一些文本函数搭配上 Table.TransformColumnNames(Power Query 中用于重命名列的函数)进行批量转换,该函数的用法为:

= Table.TransformColumnNames(  table as table,   nameGenerator as function,   optional options as nullable record)

下面我们列举出了一些常见的例子。

替换字符

有时,列名称中会带有我们想要删除的文本字符,要一次性替换所有列名称中的字符,我们可以使用以下代码:

= Table.TransformColumnNames( 源,  each Text.Replace( _, "原始文本", "替换文本" ) )

如果你不知道这里的 _ 代表什么,可以看下我们介绍 each 和 _ 的文章,这里可以先理解为当前正在处理的列名。

参考: 99.9% 的人不知道的 PowerQuery 知识

用法示例,将列名称中所有的城市文本替换为空格。

添加前缀或后缀

在某些情况下,区分来自不同表的列很有用,可以使用以下代码在列名中添加前缀或后缀:

= Table.TransformColumnNames( 源,  each "前缀." & _ )= Table.TransformColumnNames( 源,  each _ & ".后缀" )

更改大小写

= Table.TransformColumnNames( 源,  each Text.Lower( _ ) )// 将列名称转换为小写
= Table.TransformColumnNames( 源, each Text.Upper( _ ) )// 将列名称转换为大写
= Table.TransformColumnNames( 源, each Text.Proper( _ ) )// 将列名称中的每个单词大写

删除某些不必要的字符

当列名包含不必要的字符或空格时,Text.Trim 或 Text.Clean 可以快速删除这些字符。

= Table.TransformColumnNames( 源,  each Text.Trim( _ ) )//  删除列名中的所有前导空格和尾随空格。
= Table.TransformColumnNames( 源, each Text.Clean( _ ) )// 删除列名中的所有控制字符。

有条件地转换列名

到目前为止,我们已经对每一列应用了转换。但你可能会需要转换某些特定列,这时我们可以使用 if 函数限制仅满足特定条件的列修改列名。

假设你有一个日历表,其中有些列名包含单词 date,我们要标记所有包含单词 date 的列名。可以通过以下方式在代码中添加条件:

Table.TransformColumnNames( 源,  each if Text.Contains(_, "date" ) then "前缀." & _ else _ )//为每个包含 date 文本的列名添加前缀

该函数先执行条件判断,然后只对条件为真的值进行前缀处理。在其他情况下,将返回原始值,以下划线 (_) 表示。

使用转换表表重命名

在某些情况下,一般的转换是不够的。在这种情况下,可以使用转换表来指示重命名列。这不是动态的,但如果使用多种语言或只是非常具体的需求,它会很有用。这是如何工作的?

此解决方案利用了 Table.RenameColumns 函数。此函数的语法为:

= Table.RenameColumns( table as table,      // 要重命名列的表                       renames as list,     // 以列表形式列出新旧列名对                       optional missingField )

对于翻译表,可以创建一个名为重命名的单独查询,其中包含一个具有旧列名的列和一个具有新列名的列。

然后使用 List.Zip 函数将表列转换为正确的格式就完成了。

这对于一些列名翻译操作非常有用,因为 Excel 之前也是推出了翻译函数。

参考: Excel 新函数,轻松搞定数据翻译

现在你知道如何使用 Power Query 一次重命名多个列了吧,赶快去试一试吧。

更专业的数据分析师训练营



🚀 《业财分析之道》 点击文字查看具体报名信息。

📈 《经营分析之道》 点击文字查看具体报名信息 。

🔍 数据分析之道 点击文字查看具体报名信息。
💡
商业智能之道 点击文字查看具体报名信息

🔗 如何获取更多信息?扫描下方二维码具体咨询。


BI佐罗数据分析 - 更专业更系统的企业数据分析
点击“阅读原文”获取更多资源







请到「今天看啥」查看全文