Power Query合并数据

一、表结构数据的数据结构

跟数据库数据结构一样。

  • 层级关系 :数据库的构成自内向外分为字段、数据表和数据库三个层级。字段的集合构成数据表,数据表的集合构成数据库。
  • 字段组成:
    • 标题行:字段的第一行信息,用于标识字段,称为字段名(如"姓名"、"年龄"、"性别")
    • 记录:从第二行开始到最后一行,记载字段内的具体数据内容
  • 示例说明:销售业务数据库包含员工属性表(有姓名、年龄、性别等字段)、产品属性表、销售业绩表等多个数据表

二、横向合并数据

1、基本概念

  • 定义:将副表中主表没有的字段信息合并到主表,类似于Excel的VLOOKUP函数
  • 表角色:
    • **主表:**存放最终合并结果的表
    • **副表:**为主表提供补充信息的表
  • 关键字段要求:
    • 主副表都必须包含该字段
    • 字段值能相互对应(字段名可以不同)
    • 理想情况应无重复值且能一一对应

2、注意事项

  • 非一一对应情况:当关键字段值不是一一对应时,不同联接种类会产生不同结果
  • 重复值影响:关键字段有重复值时,合并后总行数为各表重复出现次数的乘积(如主表重复2次×副表重复2次=4行结果)
  • 连接种类:
    • 内部连接:仅保留两表都匹配的行
    • 左外部连接:保留左表所有行和右表匹配行(老版本Power Query默认)

3、演示合并方法

操作步骤:

  • 新建Excel文件,在"数据"选项卡下选择"新建查询"
  • 从工作簿导入包含"商机记录"和"商机相关企业信息"两个工作表的数据
  • 将两个表都加载为Power Query中的表
  1. 在Power Query编辑器中选择主表(商机记录)
  2. 在"开始"选项卡下点击"合并查询"
  3. 选择副表(商机相关企业信息)
  4. 分别选择两表中的客户ID作为关键字段
  5. 选择连接种类(演示中使用内部连接)

这里和MySQL的join查询一样,不再赘述。

这里显示是Table类型

字段展开:

  1. 点击新生成字段的展开箭头
  2. 选择"扩展"并勾选需要的字段
  3. 可取消"使用原始列名作为前缀"避免字段名过长

结果特点:

内部连接只保留8行两表都匹配的记录(原主表26行,副表24行)

展开了😄

也可以自己选

则只显示所需字段

点击"关闭并上载"生成最终合并表

结果验证:新表包含主表原有字段和从副表合并来的客户名称、城市、企业规模等补充信息


三、左外部连接操作演示

  • 数据组成:包含三个工作表:学员信息表、学员成绩表和合并结果表
  • 信息表结构
    • 学员信息表:学号、学员姓名、年龄(3个字段)
    • 学员成绩表:学号、成绩(2个字段)
  • 数据匹配与合并目标
    • 关键字段:通过学号字段进行表间匹配
    • 合并目标:将学员成绩表中的成绩信息合并到学员信息表中,生成包含学号、姓名、年龄和成绩的完整信息表

重复值特征:

  • 学员信息表:学号a重复2次(黄色标记)
  • 学员成绩表:学号a重复2次(黄色标记)

缺失值特征:

  • 学号e:仅在信息表存在(蓝色标记)
  • 学号f:仅在成绩表存在(绿色标记)

左外部连接逻辑

连接原则:

  • 保留左表(学员信息表)所有记录
  • 右表(成绩表)匹配记录显示实际值,无匹配显示空值

重复值处理:

  • 连接结果行数=左表重复次数×右表重复次数
  • 示例:学号a在两边各重复2次→结果生成4条记录(2×2)

操作过程

具体结果:

  • a(赵大):4条记录(成绩均为50)
  • b(钱二):1条记录(成绩60)
  • c(张三):1条记录(成绩70)
  • d(李四):1条记录(成绩80)
  • e(王五):1条记录(成绩为空)

总行数计算:

4(a)+1(b)+1(c)+1(d)+1(e)=8行


四、纵向合并数据

1、基本概念

  • 定义: 纵向合并是指在现有数据基础上向下添加新记录的操作,与横向合并(添加新字段)形成对比。
  • 合并流程:
    • 相同字段合并:将有相同字段名的字段纵向合并到一起
    • 不同字段追加:将不同字段名的字段追加在最后
    • 非匹配处理:非匹配字段标记为"null"值
  • 示例说明:
    • 主表包含"关键字段"和"数值"字段
    • 副表包含"关键字段"和"大写字母"字段
    • 合并后:"关键字段"合并显示,数值和大写字母分列显示,非匹配部分填充null值

2、演示纵向合并方法

导入步骤:

  • 新建空Excel文件
  • 通过"数据"→"从工作簿"导入演示数据
  • 选择需要合并的表1和表2

标题行处理:

  • 判断逻辑:Excel根据第一行与后续行数据类型是否一致决定是否添加标题行
  • 不一致处理:若第一行与后续行数据类型不完全一致,保留原始标题行
  • 一致处理:若完全一致,自动添加Column1/2等默认标题行

标题行修正:

  • 在"转换"功能组选择"将第一行用作标题"
  • 双击字段名单元格可修改字段名称

追加查询操作

  • 选中主表(表1)
  • 在"开始"→"合并"功能组选择"追加查询"
  • 选择要追加的表(表2)
  • 点击确定完成合并

字段名匹配技巧:

  • 修改副表字段名与主表一致可使数据合并到同一列
  • 示例:将"大写字母"改为"数值"可使字母追加到数字下方

数据类型注意:

  • 字段只能有一种数据类型
  • 合并不同数据类型字段时,会统一为更包容的类型(如文本型优先于数值型)

结果特征:

  • 相同字段名数据纵向堆叠
  • 不同字段名数据并列显示
  • 非匹配区域自动填充null值

数据类型变化:

  • 数值型与文本型合并后统一转为文本型
  • 因文本型数据无法转换为数值型

五、知识小结

|-------------|--------------------------------------------------|---------------------------------------------|----------------------|
| 知识点 | 核心内容 | 操作要点/易错点 | 应用场景 |
| 表结构数据概念 | 数据库构成关系:字段→数据表→数据库; 字段组成:字段名(标题行)+记录(数据行) | 字段名必须唯一,记录可重复; 数据类型需统一 | 数据库设计基础; 数据建模前提 |
| 横向合并 | 主表+副表通过关键字段匹配; 类似Excel的VLOOKUP功能 | 关键字段要求: 1. 两表均有且值能对应; 2. 最好无重复值; 3. 字段名可不相同 | 补充主表缺失字段; 构建完整业务视图 |
| 连接种类 | - 左外部:主表全保留+副表匹配; - 内部:仅两表匹配行; - 重复值处理:行数=重复次数乘积 | 典型错误:未选关键字段导致错误匹配; 忽略重复值造成数据膨胀 | 数据清洗; 多源数据整合 |
| 横向合并操作 | 1. 选中主表→合并查询; 2. 选择副表和关键字段; 3. 展开合并字段选择列 | 关键步骤: - 展开时取消冗余字段; - 注意字段名前缀选项 | 销售记录补全客户信息; 订单关联产品详情 |
| 纵向合并规则 | 1. 同名字段纵向拼接; 2. 不同字段追加列; 3. 非匹配字段标空值 | 数据类型冲突:文本型会覆盖数值型; 需预先统一字段名 | 多期数据合并; 分支机构报表汇总 |
| 重复值影响 | 主副表关键字段重复时: - 左外部:保留所有组合; - 内部:仅交集组合 | 示例: 2个重复值×2个=4行结果 | 需提前去重或; 接受合理数据冗余 |
| 字段命名规范 | 纵向合并依赖字段名匹配; 修改字段名可改变合并结果 | 最佳实践: 合并前统一关键字段名称 | 异构系统数据对接; 历史数据迁移 |

相关推荐
—Miss. Z—1 年前
Power Query抓取多页数据导入到Excel
excel·power query
苏生Susheng1 年前
【Oracle】Oracle中的merge into
java·数据库·sql·mysql·oracle·数据更新·数据合并
剑 云1 年前
办公数据分析利器:Excel与Power Query透视功能
大数据·信息可视化·power query