Power Query数据处理

这篇博客介绍了如何使用Power Query进行数据处理,包括连接数据源、纵向和横向合并表格,以及使用M函数进行数据分组和排序。在M函数基础部分,讲解了基本表达式和变量类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、使用Power Query

连接数据源

使用查询编辑器

纵向合并::将销售一表与销售二表纵向合并为销售总表

横向合并:将产品分类表中信息合并到销售总表中

​ 复制分组表:将销售总表进行复制,复制表表名为分组表

在分组表中提取季度信息

分组依据:以产品类型与季度为分组依据,汇总商机数与商机金额

排序: 按照产品类型与季度的升序顺序进行排序

M函数基础

M函数基本表达式

M函数基本变量类型 

 

一、使用Power Query

连接数据源

Excel 为例

使用查询编辑器

  • 删除各表中前两行
  • 提升各表标题行
  • 纵向合并:将销售一表与销售二表纵向合并为销售总表
  • 横向合并:将产品分类表中信息合并到销售总表中
  • 复制分组表:将销售总表进行复制,复制表表名为分组表
  • 在分组表中提取季度信息
  • 分组依据:以产品类型与季度为分组依据,汇总商机数与商机金额
  • 排序: 按照产品类型与季度的升序顺序进行排序

行列的识别:

  • 字段:识别列,不能重复
  • 记录:主键识别行

字段: 

  • 一个字段只能有一个数据类型 
  • 所有字段的记录数相同

主键:

  • 物理:非空不重复
  • 业务:一个表的记录单位,所有非主键字段都要能够围绕主题信息进行描述和扩展

纵向合并::将销售一表与销售二表纵向合并为销售总表

横向合并:将产品分类表中信息合并到销售总表中

<think>好的,我现在需要帮助用户了解如何使用Power Query进行数据处理。首先,我得回顾一下用户提供的引用内容,确保回答准确。用户提到了几个关键点,包括查询折叠、数据导入、M函数以及避免使用组合功能等。 首先,我应该从数据导入开始,因为这是数据处理的第一步。根据引用[3],Power Query支持多种数据源,比如Excel、文件夹、Web等。需要分步骤说明如何从不同来源导入数据,特别是如何构建SQL语句的情况,如引用[1]提到的查询折叠,这可能影响性能。 接下来是数据处理的基础操作。用户提到了筛选、排序、删除重复项等,这些是常见操作。需要强调引用[2]中的建议,即保持数据结构规范一致,避免使用组合功能。可能还需要提到数据清洗,比如填充空值或拆分列。 然后是M函数的基础知识,引用[5]详细说明了let...in结构和注释方法。这里需要举例说明如何编写简单的M表达式,比如转换文本大小写,让用户更容易理解。 高级处理部分可能需要涉及合并查询、分组聚合和自定义列,这些在数据处理中很常用。同时,引用[4]提到爬取网页数据,可以作为一个案例,说明如何从Web获取数据并进行处理。 最后,注意事项部分要提醒用户查询折叠的重要性,如引用[1]中提到的,区分是否能构建SQL语句的情况,以及引用[2]中关于数据结构规范的建议。还要提到性能优化,比如尽早过滤数据。 在生成相关问题的时候,需要覆盖数据导入、M函数、查询折叠、数据清洗和实战案例,这样用户可以有进一步学习的路径。需要确保所有引用都正确标注,比如引用[1]到[5]对应的内容。 现在,检查是否有遗漏的要点,比如是否提到了Power Query的界面操作,引用[3]中的导入数据窗口是否足够详细。另外,引用[5]中的M函数变量类型是否需要更详细说明?可能用户作为初学者,需要更基础的示例。 最后,确保语言口语化,避免使用技术术语过多,同时结构清晰,分步骤讲解。确认所有LaTeX格式正确,比如变量用$...$,没有独立公式所以不需要$$...$$。检查是否有中文回答,符合用户要求。</think>以下是Power Query数据处理的详细教程,结合官方文档和实际应用场景整理: ### 一、数据导入方法 1. **从文件导入**(支持Excel/CSV/文本) - 在Excel中选择「数据」→「获取数据」→「来自文件」 - 勾选「将第一行用作标题」确保字段识别正确[^3] 2. **从文件夹批量导入** ```powerquery-m let 源 = Folder.Files("C:\数据文件夹"), 筛选文件 = Table.SelectRows(源, each [Extension] = ".xlsx") in 筛选文件 ``` 此方法可合并结构相同的工作表[^2] 3. **Web数据抓取** ```powerquery-m = Web.Page(Web.Contents("http://www.air-level.com")) ``` 支持动态网页数据抓取(如空气质量数据)[^4] ### 二、数据处理基础 1. **数据清洗** - 删除空行:主页→「减少行」→「删除空行」 - 填充空值:右键列标题→「替换值」→将`null`替换为指定值 - 拆分列:按分隔符/字符数拆分文本列 2. **数据转换** - 类型转换:右键列标题→「更改类型」 - 日期处理:提取年/月/日、计算日期差 ```powerquery-m = Table.AddColumn(源, "年份", each Date.Year([日期列])) ``` ### 三、M函数进阶 1. **基本表达式结构** ```powerquery-m let 步骤1 = 操作1, 步骤2 = 操作2(步骤1) in 步骤2 ``` 支持多步骤数据处理流水线[^5] 2. **常用函数示例** ```powerquery-m // 文本处理 = Text.Combine({"A","B"},"-") // 返回"A-B" // 条件判断 = if [销售额] > 10000 then "达标" else "未达标" ``` ### 四、性能优化技巧 1. **查询折叠(Query Folding)** - 在数据源阶段通过生成SQL语句预处理数据 - 验证是否折叠成功:右键查询步骤→查看「服务器请求」是否激活[^1] 2. **数据过滤优先级** ```mermaid graph LR A[数据源] --> B{可构建SQL?} B -->|是| C[先筛选再加载] B -->|否| D[全量加载后筛选] ``` 建议优先在数据库端完成筛选[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值