EXCEL,如何比较2个表里的数据差异(使用数据透视表)

目录

1 问题: 需要比较如下2个表的内容差异

1.1 原始数据喝问题

1.2 提前总结

2 使用EXCEL公式方法

2.1 新增辅助列: 辅助index

2.2 具体公式+ 配合条件格式 使用

3 数据透视表方法

3.1 新增辅助列: 辅助index 

3.2 需要先打开 数据透视表向导

3.3 数据透视表比较的基本步骤

3.3.1 使用数据透视表向导

3.3.2  一定要:自定义页字段,其实就是定义2个区域表的名称,否则 区域表名会默认为 “项1,项2” 且不好修改

  3.3.3 分别选2个区域

 3.3.4  输出到新工作表或 现在sheet选个单元格作为左上角区域都可以

3.3.5 生成的基本数据透视表

3.3.5 生成的基本数据透视表的 变换

3.3.6  取消 分类汇总数据,没啥意义

 3.3.7  最终的数据透视表比较的效果

​编辑

 3.3.8  如果想加入差值,最终效果


1 问题: 需要比较如下2个表的内容差异

1.1 原始数据喝问题

  • 表1:暂时命名A 或 AA
  • 表1:暂时命名B 或 BB
  • 这2个表,基本内容是相同的,列名查差不多,但是可能新增列
  • 行的对象基本都是同类的东西
  • 因此可以进行比较

 

1.2 提前总结

  • 方法1: 写公式判断
  • 方法2: 用数据透视表比较

2 使用EXCEL公式方法

2.1 新增辅助列: 辅助index

  • B3&C3
  • 因为有些数据可能有个多个index,这里举例子是2个,还可以更多
  • 加辅助列就可以简单的把多个index 合成一个 唯一的index 识别列

2.2 具体公式+ 配合条件格式 使用

  • =IF(ISNA(VLOOKUP($D3,B!$C:$Z,MATCH(E$2,B!$1:$1,0)-2,FALSE)),"B表里无此数据",IF(ISNA(VLOOKUP($D3,A!$C:$Z,MATCH(E$2,A!$1:$1,0)-2,FALSE)),"A表里无此数据",IF(VLOOKUP($D3,B!$C:$Z,MATCH(E$2,B!$1:$1,0)-2,FALSE)=VLOOKUP($D3,A!$C:$Z,MATCH(E$2,A!$1:$1,0)-2,FALSE),"相同","不同")))
  • 为了判断B表里是否有这个列属性对应的数据ISNA(VLOOKUP($D3,B!$C:$Z,MATCH(E$2,B!$1:$1,0)-2,FALSE)),"B表里无此数据"
  • 为了判断A表里是否有这个列属性对应的数据IF(ISNA(VLOOKUP($D3,A!$C:$Z,MATCH(E$2,A!$1:$1,0)-2,FALSE)),"A表里无此数据"
  • 比较这个列属性在前面2个表里分别的数值VLOOKUP($D3,B!$C:$Z,MATCH(E$2,B!$1:$1,0)-2,FALSE)=VLOOKUP($D3,A!$C:$Z,MATCH(E$2,A!$1:$1,0)-2,FALSE),"相同","不同"
  • 配合条件格式,会更显著

3 数据透视表方法

  • 数据透视表一般用来汇总,其实也可以用来对比

3.1 新增辅助列: 辅助index 

  • 也需要做辅助的index列

3.2 需要先打开 数据透视表向导

  • 因为涉及了多张表,需要先从文件--选项里,打开 数据透视表向导

3.3 数据透视表比较的基本步骤

3.3.1 使用数据透视表向导

  • 使用数据透视表向导,因为需要考虑多区域的数据
  • 也可以不使用数据透视表向导,但是那样则需要 手动把2个表合并到一张表上,比较麻烦,且不直观,我选择 多种数据区域的数据透视表

3.3.2  一定要:自定义页字段,其实就是定义2个区域表的名称,否则 区域表名会默认为 “项1,项2” 且不好修改

  3.3.3 分别选2个区域

  • 添加区域1
  • 设置字段数目1(没必要设置多个字段吧!)
  • 设置字段1的名字
  • 添加区域2 ---如果选不动,记得从 向上箭头⬆这选
  • 设置字段数目2
  • 设置字段2的名字

 3.3.4  输出到新工作表或 现在sheet选个单元格作为左上角区域都可以

 

3.3.5 生成的基本数据透视表

  • 行,
  • 列,
  • 值,数据
  • 页:也就是 不同的数据表的区域,可以是表名或其他

3.3.5 生成的基本数据透视表的 变换

  • 先把页移动到行里,最后
  • 先把页移动到列里,最后

3.3.6  取消 分类汇总数据,没啥意义

 3.3.7  最终的数据透视表比较的效果

 3.3.8  如果想加入差值,最终效果

  • 设置差值
  • 需要先选择,页名--也就是表名位置,然后选择计算项来设置
  • 修改字段名:差值‘
  • 修改公式:BB-AA

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/51573.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CMU 15-445 -- Multi-Version Concurrency Control - 16

CMU 15-445 -- Multi-Version Concurrency Control - 16 引言MVCCExample #1Example #2小结 Design DecisionsConcurrency Control ProtocolVersion StorageAppend-Only StorageTime-Travel StorageDelta Storage Garbage CollectionTuple-Level GCTransaction-Level GC Index …

linux系统安装mysql

背景 之前用docker安装mysql,受限太多,这次不用docker直接安装。 参考文章 linux系统安装mysql 文章写的很细,亲测有效。 问题记录 不过存在一个小问题,这里记录一下自己的解决方法 问题:安装完mysql,启…

MD-MTSP:成长优化算法GO求解多仓库多旅行商问题MATLAB(可更改数据集,旅行商的数量和起点)

一、成长优化算法GO 成长优化算法(Growth Optimizer,GO)由Qingke Zhang等人于2023年提出,该算法的设计灵感来源于个人在成长过程中的学习和反思机制。学习是个人通过从外部世界获取知识而成长的过程,反思是检查个体自…

【物联网无线通信技术】UWB定位从理论到实现(DW1000)

超宽带(UWB)是一种基于IEEE 802.15.4a和802.15.4z标准的无线电技术,可以非常精确地测量无线电信号的飞行时间,从而实现厘米级精度的距离/位置测量。UWB技术除了提供定位功能外,它本身是一种通信技术,其提供…

Labelme制作COCO格式的图像语义分割数据集

1.按照labelme工具地址先配置安装labelme:GitHub - wkentaro/labelme: Image Polygonal Annotation with Python (polygon, rectangle, circle, line, point and image-level flag annotation). 2.给自己的数据集画多边形框-Create Polygons 每张图像画完框后&#…

[个人笔记] vCenter设置时区和NTP同步

VMware虚拟化 - 运维篇 第三章 vCenter设置时区和NTP同步 VMware虚拟化 - 运维篇系列文章回顾vCenter设置时区和NTP同步(附加)ESXi设置alias参考链接 系列文章回顾 第一章 vCenter给虚机添加RDM磁盘 第二章 vCenter回收活跃虚拟机的剩余可用空间 vCente…

linux+Jenkins+飞书机器人发送通知(带签名)

文章目录 🌞如何使用🌻在linux 上安装python 环境🌻发送消息python脚本🦋把脚本上传倒linux上🦋jenkins 上执行脚本 🌞如何使用 自定义机器人使用指南飞书官网https://open.feishu.cn/document/client-doc…

ChatGPT炒股:爬取股票官方微信公众号的新闻资讯

上市公司的微信公众号,现在已经成为官网之外最重要的官方信息发布渠道。有些不会在股票公告中发布的消息,也会在微信公众号进行发布。所以,跟踪持仓股票的公众号信息,非常重要。 下面,以贝特瑞的官方公众号“贝特瑞新…

beego验证码(配置到redis存储)

我们定义一个全局变量用于存储redis连接 RedisDb *redis.Client 然后连接 redis 这一块我们将redis信息写到app.conf文件里了: redisDb 1 redisAddr "127.0.0.1:6379" redisPwd "" package initializeimport ("beego_learning/global&q…

经典的数组和指针结合的OJ题

一、合并两个有序数组 leetcode链接 题目描述: 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递…

[Linux]进程控制详解!!(创建、终止、等待、替换)

hello,大家好,这里是bang___bang_,在上两篇中我们讲解了进程的概念、状态和进程地址空间,本篇讲解进程的控制!!包含内容有进程创建、进程等待、进程替换、进程终止!! 附上前2篇文章…

七大经典比较排序算法

1. 插入排序 (⭐️⭐️) 🌟 思想: 直接插入排序是一种简单的插入排序法,思想是是把待排序的数据按照下标从小到大,依次插入到一个已经排好的序列中,直至全部插入,得到一个新的有序序列。例如:…

Vue3搭建启动

Vue3搭建&启动 一、创建项目二、启动项目三、配置项目1、添加编辑器配置文件2、配置别名3、处理sass/scss4、处理tsx(不用的话可以不处理) 四、添加Eslint 一、创建项目 npm create vite 1.project-name 输入项目名vue3-vite 2.select a framework 选择框架 3.select a var…

【Spring】聊聊Spring如何解决的循环依赖以及三级缓存

循环依赖是什么 在平时的面试中,只要问到Spring,那么大概率肯定会问什么是循环依赖,Sping是如何解决循环依赖的。以及三级缓存机制是什么。所以为了从根本上解决这个问题,本篇主要详细介绍一下循环依赖的问题。 Spring Bean初始…

谷粒商城第七天-商品服务之分类管理下的分类的拖拽功能的实现

目录 一、总述 1.1 前端思路 1.2 后端思路 二、前端实现 2.1 判断是否能进行拖拽 2.2 收集受影响的节点,提交给服务器 三、后端实现 四、总结 一、总述 这个拖拽功能对于这种树形的列表,整体的搬迁是很方便的。但是其实现却并不是那么的简单。 …

Android SDK 上手指南||第一章 环境需求||第二章 IDE:Eclipse速览

第一章 环境需求 这是我们系列教程的第一篇,让我们来安装Android的开发环境并且把Android SDK运行起来! 介绍 欢迎来到Android SDK入门指南系列文章,如果你想开始开发Android App,这个系列将从头开始教你所须的技能。我们假定你…

Vue2封装自定义全局Loading组件

前言 在开发的过程中,点击提交按钮,或者是一些其它场景总会遇到Loading加载框,PC的一些UI库也没有这样的加载框,无法满足业务需求,因此可以自己自定义一个,实现过程如下。 效果图 如何封装? 第…

MySQL | 常用命令示例

MySQL | 常用命令示例 一、启停MySQL数据库服务二、连接MySQL数据库三、创建和管理数据库四、创建和管理数据表五、数据备份和恢复六、查询与优化 MySQL是一款常用的关系型数据库管理系统,广泛应用于各个领域。在使用MySQL时,我们经常需要编写一些常用脚…

Qt之切换语言的方法(传统数组法与Qt语言家)

http://t.csdn.cn/BVigB 传统数组法: 定义一个字符串二维数组, QString weekStr[2][7] {"星期一","星期二","星期三","星期四","星期五","星期六","星期日",\ "Monday&…

自己创建的类,其他类中使用错误

说明:自己创建的类,在其他类中创建,报下面的错误(Cannot resolve sysmbol ‘Redishandler’); 解决:看下是不是漏掉了包名 加上包名,问题解决;