《高级篇:Power Query M函数教程》是一本深入讲解Power BI和Excel中Power Query M语言的书籍,适合希望掌握数据转换与处理高级技能的专业人士阅读。
在Power Query M函数教程的高级篇里,我们深入讨论了几个关键的数据清洗与转换功能。以下是这些知识点的具体描述:
1. **取列**:
- `Table.Column`:用于从表格中提取指定列的列表,如`Table.Column(表,字段名)`。
- `Table.SelectColumns`:选取表格中的一个或多个列。例如单个列选取使用`Table.SelectColumns(源,姓名)`;多个列则用到`Table.SelectColumns(源,{姓名,语文})`。此外还可以设置第三个参数来处理错误,如在尝试选择可能不存在的字段时忽略错误。
2. **展开List**:
- `Table.ExpandListColumn`:用于将表格中某个列为列表的项逐一扩展成独立的新行,例如使用`Table.ExpandListColumn(表, 姓名)`。每个列表元素都会形成单独的一行,并且其他列的数据在这些新行中保持不变。
3. **展开Record**:
- `Table.ExpandRecordColumn`:用于从表格的记录类型列中提取字段并展开它们,例如使用`Table.ExpandRecordColumn(表,记录,{姓名1,姓名2,姓名3},{新1,新2,新3})`可以将这些字段分别重命名为新的名称。
4. **展开Table**:
- `Table.ExpandTableColumn`:与上述类似但用于表格中的表类型列,例如使用`Table.ExpandTableColumn(表1,表,{姓名,语文,数学},{名字,国语,科学})`可以将内部的表扩展成新的列,并且允许重命名这些新生成的列。
5. **判断列名**:
- `Table.HasColumns`:用来检查表格是否含有特定名称的字段。例如,使用`Table.HasColumns(源,姓名)`返回TRUE表示存在该名为“姓名”的字段;而使用`Table.HasColumns(源,{姓名,性别})`则会验证多个指定列是否存在。
6. **操作列名**:
- `Table.PrefixColumns`:为所有当前的列名称添加前缀,例如用`Table.PrefixColumns(源,孙兴华)`将每个字段名前面加上“孙兴华”。
7. **转换列名**:
- `Table.TransformColumnNames`:可以用来修改表格中各字段的名字。比如使用`Table.TransformColumnNames(源,each Text.BetweenDelimiters(_,[,]))`会去除所有名称中的括号,仅保留其中的内容;而用到如`Table.TransformColumnNames(源,each Text.Upper(_))`则将所有的列名转换为全大写形式。
这些函数是使用Power Query M语言进行数据处理的基础工具。掌握它们能够帮助你更有效地清洗、转换和准备数据。通过灵活组合应用,可以构建出满足各种数据分析需求的复杂查询逻辑,并且提高工作的效率与准确性。