近来在网上看到一则查找两列数据差异项的方法,试着做发现07版的excel根本就没有那个功能,而且设置过程也很麻烦,有那个功夫,不如去网上找函数公式解决。今天给大家分享一下用函数组合公式和自定义函数公式两种方法实现两列数据差异查找并列出的效果。

案例

上图中各部门收集的客户名单存在不同,需要找到产品有而运营没有的客户名单,有人可能会直接选中两列数据设置条件格式,突出显示唯一值,得到下面的情况,在逐个复制过去就行了。

确实很简单,但是模拟的数据有限,要是成百上千条数据查找,查找出来后的复制粘贴工作是很烦的。通常我们会设置函数公式处理这种问题。

解决方案

通过设置excel函数数组公式和vba编辑自定义函数两种方法均可一次性找到差异值,并自动写入到要求的地方。

两种方法公式和实现效果如下图:

1、常规组合数组公式:

=IFERROR(INDEX($B$3:$B$13,SMALL(IF(ISNUMBER(MATCH($B$3:$B$13,$A$3:$A$11,)),4^9,ROW($B$3:$B$13)-2),ROW(A1))),"")

输入完成后ctrl+shift+enter三键同时按生效。

这个公式有点复杂,需要一定的函数功底才能掌握,当要比对其他列数据时,复制粘贴公式后,要修改对应的选择单元格区域有4处,即要修改4次才能正确显示结果,会用的人不多。对不想在函数上费精力的人来说可以用下面的自定义函数。

2、自定义函数,具体公式为:

=czbt($B$3:$B$13,$A$3:$A$11,ROW(A1))

这个函数比较简单,函数名为"查找不同"的拼音首字符组合,比较好记。共三个参数,第一个参数$B$3:$B$13为目标单元格区域(案例为产品客户名单),第二个参数$A$3:$A$11为对比单元格区域(案例为运营客户名单),第三个参数为row(a1)代表查找出来的第一个差异项,随着公式往下填充,一次找出第2、3...个差异项。当对比其他列数据时,复制粘贴公式后,只需修改对应的目标单元格区域和对比单元格区域各一次即可。函数参数设置简单明了,容易掌握。

自定义函数的用法还是提前插入模块,打开VBA编辑框,文件-导入文件-查找差异项.bas。或者在VBA编辑框插入模块,在代码区域粘贴下面的代码即可。

Function czbt(r1 As Range, r2 As Range, k As Integer) As StringDim arr1, arr2, arr3()arr1 = r1arr2 = r2ReDim arr3(1 To Application.Max(UBound(arr1), UBound(arr2)))n = 0For i = 1 To UBound(arr1) For j = 1 To UBound(arr2) If arr1(i, 1) = arr2(j, 1) Then Exit For End If If j = UBound(arr2) Then n = n + 1 arr3(n) = arr1(i, 1)  End If  Next NextIf k <= UBound(arr3) Then czbt = arr3(k)Else czbt = ""End If

找出两列数据的差集_excel快速查找数据差异项相关推荐

  1. EXCEL----数据处理(一)----找出两列数据(单列无重复)中的重复项并知道不重复部分的来源

    我们在做数据分析时有时候要借助excel来帮助我们处理数据,虽然写代码能判断所有情况,但是掌握一些excel的技能会让我们处理起来更快捷. 这里记录一些常用到的处理技巧,这次记录的是 找出两列数据(单 ...

  2. Excel 中如何找出两列数据中不重复的记录

    现在有两列数据,要在 A 列中找出 B 列中没有的记录,在 B 列中找出 A 列中没有的记录.现在和大家分享一下这个方法. 我们先用一个简单的例子看一下.现在有两列数据,可以是分别在不同的数据单(sh ...

  3. Excel中如何找出两列数据中相同的数据,并且进行同行显示

    使用VLOOKUP方法即可. =VLOOKUP(A2,Sheet1!B:C,1,0)的含义是: 在sheet1工作表的B:C区域的首列中查找等于a2的值,找到后,返回该区域的同行的值.最后的参数0表示 ...

  4. 【正则表达式测试工具】使用正则表达式快速找出两列数据中不同的行

    例如像下面的这样的一堆海量数据(已省略部分),可能有几千组,在不编程的情况下如何快速找到不同的行?可能excel有办法,但是处理起来应该没我这样方便的. b_start b_end 100790 10 ...

  5. Excel找出两列相同部分

    公式:=IF(COUNTIF($B$2:$B$1036,A6)>0,A2,"") 含义:从B列第2行到b列1036行中和A列第6个相等的返回A6的值,不相等返回空 用法:新建 ...

  6. Excel中找出两列中相同的值

    第一步:选中要对比的H列和J列 第二步:点击"开始",然后点击"条件格式"并选择"突出显示单元格规则" 第三步: 选中"重复值&q ...

  7. 表格字体缩小 php_如何快速找出两个Excel表格不同的地方?

    上一篇文章介绍了如何快速找出两个word文档不同的地方,这篇文章来说说如何快速找出两个Excel表格不同的地方,这里说的两个Excel表格,可以是同一个工作簿的不同sheet,也可以是两个不同的Exc ...

  8. php 随机两位小数数_使用8086微处理器找出两个8位N数数组

    php 随机两位小数数 Problem statement: 问题陈述: Write a program in 8086 microprocessor to find out the sum of t ...

  9. DHU数据结构-顺序表- ADT应用-找出两个等长升序序列的中位数

    目录 1.题目 2.题解 3.代码实现 1.题目 顺序表ADT模板简单应用算法设计:找出两个等长升序序列的中位数 作者: 教材 时间限制: 1S 章节: DS:线性表 问题描述 : 目的:使用自行设计 ...

最新文章

  1. 性能测试回归测试_自动网站性能回归测试
  2. TensorFlow:Object_Detection_API在Windows10上的配置
  3. html 一行显示边框线,HTML 网页中要显示出来一个虚线的边框 就是一行字在边框里面,那个边框是显示出来的,程式码应该怎么写?...
  4. linux100day(day7)--用户管理和权限管理简单介绍
  5. Android之实现多桌面图标app入口进入不同的页面,像2个独立运行的app一样,互不干扰。
  6. ORACLE rac集群概念和原理
  7. Android安全笔记-Intent和PendingIntent基本概念
  8. c4503文件服务器,理光C3503/C4503/C5503检查状态下各项目说明解释
  9. 跳槽失败到月薪50K,AI工程师是这样炼成的!
  10. Migrate blog from blogcn here
  11. kafka reblance入门
  12. 自然语言处理技术之准确率(Precision)、召回率(Recall)、F值(F-Measure)简介
  13. 信息学奥赛一本通 欧拉回路
  14. 2021-08-30-全排列-逆序数-排列的奇偶性
  15. 穿山甲——流量变现新猛兽
  16. 众筹一个报名签到平台的设计思路(一)——业务需求篇
  17. Android SDK Manager
  18. 代理连接FTP实现上传和下载功能
  19. 对MySQL进行新建、修改外键级联删除操作
  20. App Clips简介以及demo演示

热门文章

  1. 如何搭建AIoT智能对话交互系统:技术解析和实操分享
  2. Attention注意力机制的前世今身
  3. AAAI 2020 时间交错网络 | ICCV19多标签视频理解冠军方案
  4. 美国密西西比州立大学招收机器学习、数据挖掘方向全奖博士生
  5. linux cant open file for writing,linux 安装rz sz lrz lsz sftp: cannot open 文件名称 to write 报错解决...
  6. 数据结构与算法之二分查找法
  7. TensorFlow 2——【module ‘tensorflow.compat.v1‘ has no attribute ‘contrib‘】解决方案
  8. JavaScript——获取浏览器滚动条(ScrollBar)宽度
  9. JAVA——文档注释(javavdoc)通用注释-超链接@see与@link的使用
  10. OpenWrt——配置L2TP客户端