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行结果 | 需提前去重或; 接受合理数据冗余 |
| 字段命名规范 | 纵向合并依赖字段名匹配; 修改字段名可改变合并结果 | 最佳实践: 合并前统一关键字段名称 | 异构系统数据对接; 历史数据迁移 |

相关推荐
fengyehongWorld9 天前
Power Query 求和,平均值,最大值,最小值
power query
fengyehongWorld12 天前
Power Query Table.SelectRows()函数 数据筛选
power query
fengyehongWorld19 天前
Power Query 分组统计
power query
fengyehongWorld20 天前
Power Query 带有合并单元格的二维表逆透视为一维表
power query
fengyehongWorld20 天前
Power Query 的简介 与 打开方式
power query
weixin_318088111 个月前
Power query代替PowerBI加载数据到excel
excel·powerbi·power query
—Miss. Z—2 年前
Power Query抓取多页数据导入到Excel
excel·power query
苏生Susheng2 年前
【Oracle】Oracle中的merge into
java·数据库·sql·mysql·oracle·数据更新·数据合并
剑 云2 年前
办公数据分析利器:Excel与Power Query透视功能
大数据·信息可视化·power query