中企动力 > 商学院 > excel多表数据匹配
  • ?

    Excel提高效率必会的函数-vlookup实战经验分享

    叶冷珍

    展开

    上篇我们讲了通用函数的使用办法,都是比较基本的必备技能,大家只需多练习下,就会使用很多函数去代替人工的处理办法了。接下来这篇为大家重点讲一下vlookup函数的具体使用和避免匹配不到的办法,不然在使用过程你很可能会发现匹配的数据老是不全,反而影响了结果的准确!

    首先,让我们一起来看一个实际需求,也顺便把常用函数串一起讲讲:

    有两张表,其中一个里边有每个人的姓名、工号、部门信息,另一个里边有姓名、工号、工资信息,现在我们要把两个表合成一个表,即在一个表中共有姓名、工号、部门、工资这四个信息。那么,一般情况下,我们会怎么去解决这个需求呢?这里我放在一个表里方便截图。

    1、最低效率:用笨办法。用眼睛去盯,一个一个地查找出来,然后再粘贴过去。

    2、中等效率:容易出错。先给工号排序,然后粘贴过来。这种情况,如果两个表里的数据行数不一致,或者本身只有部分数据,就没法用了。

    3、超高效率:准确快速。这个方法也是我们今天要给大家分享的方法——用vlookup函数匹配。但是请大家务必注意,为了保证能够做到完全匹配,在匹配前一定要先把数据格式都调整一致,避免由于格式不一致匹配不到的问题。

    vlookup函数匹配需要一个参考列,即两个表里边一样的列数据。针对上面说到的例子,我们选用工号这一列做参考,因为往往工号信息是唯一的,不会重复。当然,也有人会选择姓名,一般情况下,如果能确定数据里没有重复的话,都可以选择,这里不选是因为姓名还是有可能出现重复的。然后分别对两个表的工号列,进行格式修正。

    1、去除可能存在的空格,这里用Trim函数,在空的一列里边输入=trim(选择同行工号的格子),回车,鼠标移动到格子右下角出现黑色+号时,点拉下来所有的行,这样你就发现这一列出现了工号列的数据,而且格式完全一致,去除空格结束,把这一列复制到工号列选择性粘贴,保留值与格式,替换原来可能有空格的工号列。另一个表同样这样操作。

    2、工号非纯数字的可以跳过这里,往下看。如果工号是纯数字的,你会发现粘贴后每个工号左上角出现一个绿色小三角符号,这是因为excel在处理纯数字时,会以字符串形式储存,与数字格式不一致,看起来同样的数字,如果一个有绿色三角,一个没有,匹配的时候是匹配不到的,系统认为这是两个不同的数据。

    这里大家感觉理解不了的话可以不管,只要记住在上一步完成后不要双击有工号单元格,如果不小心点了,可以在一个空单元格里输入=点你刚双击绿色箭头消失的格子&"",回车,复制粘贴到原来的格子,这样就等于把数字又转换成字符串格式了。

    3、开始用vlookup函数匹配,在你设定好要做为最终表里,比如有部门的表,再加一个列标题,工资,在第一行数据里,输入=vlookup(点同行的工号,选择另一个参加工号列到工资列,从工号列数工资列属于第几列,false或0),回车,下拉到所有行,这时所有能匹配到的工资都会出现。

    vlookup函数可以说是数据匹配,处理时最常用的函数了,而且也非常方便高效。所以分享这些我们使用时的经验,希望能实实在在地帮到大家!感觉文字讲解的不是非常清楚,大家如果有不明白的地方可以留言,我们会再行完善或者单独远程演示。

    下一篇准备分享下excel视图格式设置,让大家操作或者展示时能清晰高效,不用来回找东西找数据。敬请期待。

  • ?

    利用了VBA神器,多工作表的大数据搜索,真的非常简单

    赵谷兰

    展开

    最近两周一直在讲解如何利用VBA,在EXCEL的多个工作表中进行大数据的查询。今天把两周的内容精炼总结一下,想利用这些程序的朋友,可以拷贝下面的代码,放在编译器中就可以直接使用啦。

    1 Sub KK()

    2 Sheets("SHEET1").Select

    3 I = 2

    4 Do WhileCells(I, 1) <>""

    5 Cells(I,1).Select

    6 TT =Cells(I, 1)

    7 Cells(I, 2) = ""

    8

    9 SetFJX =Sheets("A").Range("A1:A"&Sheets("A").Range("A1").End(xlDown).Row).Find(TT,AFTER:=[A1],LOOKAT:=xlWhole)

    10 If NotFJXIs Nothing Then Cells(I, 2) = Sheets("A").Cells(FJX.Row, 2)

    11

    12 SetFJX =Sheets("B").Range("A1:A" &Sheets("B").Range("A1").End(xlDown).Row).Find(TT,AFTER:=[A1],LOOKAT:=xlWhole)

    13 If Not FJXIs Nothing Then Cells(I, 2) =Sheets("B").Cells(FJX.Row, 2)

    14

    15 SetFJX =Sheets("C").Range("A1:A"&Sheets("C").Range("A1").End(xlDown).Row).Find(TT, AFTER:=[A1], LOOKAT:=xlWhole)

    16 If Not FJXIs Nothing Then Cells(I, 2) =Sheets("C").Cells(FJX.Row, 2)

    17

    18 Set FJX=Sheets("D").Range("A1:A" &Sheets("D").Range("A1").End(xlDown).Row).Find(TT,AFTER:=[A1],LOOKAT:=xlWhole)

    19 If Not FJXIs Nothing Then Cells(I, 2) =Sheets("D").Cells(FJX.Row, 2)

    20 I = I + 1

    21 Set FJX =Nothing

    22 Loop

    23End Sub

    代码截图:

    工作表截图:注意名称

    下面对代码进行逐行讲解:

    1 Sub KK() ’KK给出程序的名称

    2 Sheets("SHEET1").Select ’指选择sheet1的工作表,并进行操作

    3 I = 2 ’是对变量i赋初始值,一般要用Dim i as Integer 进行声明。这里可以仅用Dim i, 也可以再简单点,直接用也行。但这不是说Vba是动态语言,相反,这恰恰说明了VBA作为静态语言的灵活性。

    4 Do While Cells(I, 1) <> "" ’DOWHILE是一个循环,是循环的标识,回调语句是loop,WHILE跟循环条件,是指第i行第一个单元格不为空建立一个循环。 变量是i,条件是直到i行的第一个单元格是空值。

    5 Cells(I, 1).Select ’要对第I行一个单元格定位,这也是为了程序具有可视性。

    6 TT = Cells(I, 1) ’然后把它的值value取出赋給TT,这也是为了以后操作简单。这里TT也是直接用的,略去了声明语句。

    7 Cells(I, 2) ="" ’要把第2个单元格清空,两个半角双引号,中间什么也没有就是空值,和空格不同,空格是" "。

    8

    9Set FJX=Sheets("A").Range("A1:A"&Sheets("A").Range("A1").End(xlDown).Row).Find(TT,AFTER:=[A1],LOOKAT:=xlWhole)

    ’SET是令FJX等于一个值,(这里也应先给FJX 事先声明此程序略去了),

    sheets("A")是指名称为A的那个工作表;

    Range("A1:A"& Sheets("A").Range("A1").End(xlDown).Row)是指从A1单元格开始向下直到最后一个不为空的单元格区域;

    Sheets("A").Range("A1:A"& Sheets("A").Range("A1").End(xlDown).Row)是指A的工作表中在A1到最后一个不为空的单元格区域;

    Find(TT,AFTER:=[A1], LOOKAT:=xlWhole)要查找值为TT的单元格,在A1的after后开始查询,是完全匹配,把区域和之后的操作间隔一个。

    这样就把查找的结果赋给了FJX。

    10 If Not FJXIs Nothing Then Cells(I, 2) = Sheets("A").Cells(FJX.Row, 2)

    ’if then 语句, 如果...那么......。查询的结果放在FJX,FJX is Nothing就是说没有查到结果。给它一个逻辑否定,就是前面加个NOT,其意思就是FJX不为Nothing 就是查到了,查到了怎么办?fjx.Row是指查到数据的行号。Sheets("A").Cells(FJX.Row,2)就是在A工作表查到的行号的第2个单元格的值,Cells(I, 2) = Sheets("A")。Cells(FJX.Row, 2)即第i行第2个单元格的值将等于工作表A中查到的行号的第2个单元格的值 Cells(I, 2) 是哪个工作表呢?指Sheets("SHEET1")。

    11

    12 SetFJX =Sheets("B").Range("A1:A"&Sheets("A").Range("A1").End(xlDown).Row).Find(TT,AFTER:=[A1],LOOKAT:=xlWhole)

    13 If Not FJX Is Nothing Then Cells(I, 2)=Sheets("B").Cells(FJX.Row, 2)’这两行类似于第9第10行,是处理当在B工作表中继续查找的操作。当查到后会有第13行的操作,和第10行的操作一样,这里要注意:第一,xlwhole是指单元格完全匹配的查找。第二,连接字符串的符号是&,不可用加号,当用到.cells时前面要用With,现在还没有用到,以后会有。

    14

    15 SetFJX =Sheets("C").Range("A1:A"&Sheets("C").Range("A1").End(xlDown).Row).Find(TT, AFTER:=[A1], LOOKAT:=xlWhole)

    16 If Not FJXIs Nothing Then Cells(I, 2) =Sheets("C").Cells(FJX.Row, 2)

    ’15行和16 行是在工作表“C”中进行的查找,也就是说:首先在工作表“A”中查找,然后就在“B”中查找,再次在"C"中查找。一旦查找到就执行将此行的第二个单元格的VALUE赋给 Sheets("SHEET1")的工作表的I行第二个单元格值,这样就实现了在多个工作表中的查询。

    17

    18 Set FJX=Sheets("D").Range("A1:A" &Sheets("D").Range("A1").End(xlDown).Row).Find(TT,AFTER:=[A1],LOOKAT:=xlWhole)

    19If Not FJX Is Nothing Then Cells(I, 2)=Sheets("D").Cells(FJX.Row, 2)

    ’18行和19 行是执行工作表D的查找。回顾一下,从第9行开始直到第19行总共运行了4个工作表

    20I = I + 1 ’I值增加1

    2121 Set FJX = Nothing ’另FJX为空准备下轮的查找

    22 Loop ’程序回调到第4行 DO WHILE

    23 End Sub ’程序结束。

    有兴趣的朋友可以试着使用一下,如果好用别忘了分享。如果有改进,别忘了晒晒代码。

    分享成果,随喜正能量

  • ?

    Excel怎么快速比较两个表格中的数据有何不同

    尤雨琴

    展开

    转载自百家号作者:mihu

    一个数据较多的Excel表格被其他人查看或编辑后,要想快速知道这个表格中的数据是否被修改了、被修改了哪些数据,我们不必逐个查看两个表格的每个单元格,可以参考以下方法对两个表格进行快速比较。

    为了避免误操作删除原表格中的数据及方便查看两个表格的不同之处,在进行比较前,可以新建一个Excel文档,然后把要比较的两个表格粘贴到该Excel文档中。例如要快速比较下图中两个表格的数据有何不同:

    先用鼠标框选原表格所在的单元格范围。

    选择后点击复制按钮或者按键盘的“Ctrl+C”组合键进行复制。

    然后在要比较表格的左上角第一个单元格中点击鼠标右键。

    弹出右键菜单后,点击菜单中的“选择性粘贴”。

    打开“选择性粘贴”对话框后,鼠标点选其中的“减”选项。

    再点击“确定”按钮。

    这时要比较表格中的数值会发生改变,显示的是两个表格对应单元格中数据相减的结果,数值为0的单元格说明其中的数据没有被改动,数值不为0的单元格说明其中的数据被修改了。

    如果觉得含0值的单元格太多,影响观察,我们还可以把所有的0值快速删除。方法是先按键盘的“Ctrl+H”组合键调出“替换”界面,然后在“查找内容”处输入“0”,“替换为”处保持空白,不输入内容。

    这时如果点击“全部替换”按钮,会将表格中所有的“0”全部删除。但要注意:如数字“10”中的“0”也会被删除变成了“1”。如果想避免这种情况,可点击替换界面的“选项”按钮。

    鼠标点击勾选图示的“单元格匹配”选项。

    再点击“全部替换”按钮。

    这样,表格中的“0”值就都被删除了,被修改的数据看起来就更加明显了。

  • ?

    Excel中VLOOKUP函数快速调用不同表中的数据

    费俊驰

    展开

    在Excel中,我们如何将一个表中的数据直接引用到另一个表中使用呢?如下图:我们要将【身份证号】表中的身份证号直接在【sheet5】表中直接调用

    身份证号表,被调用身份证号列需要调用的

    在这里我们要用到VLOOKUP函数

    公式:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

    lookup_value:需要在数据表中搜索的值,在这里我们搜索的是A列单元格,则选中A列,如下:

    选择A列

    table_array:需要在其中搜索数据的数据表,在这里,我们选择【身份证号】表,然后拖动A到B列(B列是我们想要引用的数据,所以只拖动到我们需要引用的那一列数据即可)如下:

    col_index_num:满足条件的单元格在数组区域table_array中的序列号,首列号为1。在这里我们只有两列切第二列是我们要引用的,所以为2,如下:

    range_lookup:指定在查找时是要求精确匹配,还是大致匹配。即false为大致匹配,true为精确匹配。(0代表大致匹配,不填或者写入大于0的整数则精确匹配)我们在这里输入0,大致匹配,如下:

    单后单击确定。引用数据成功

  • ?

    这样做可以将excel表格的数据匹配到另一个表

    翟语薇

    展开

    将一个excel表中的数据匹配到另一个表中,需要用到VLOOKUP函数。简单介绍一下VLOOKUP函数,VLOOKUP函数是Excel中的一个纵向查找函数,VLOOKUP是按列查找,最终返回该列所需查询列序所对应的值。

    工具:Excel 2013、VLOOKUP函数。

    1、一个excel表,需要在另一个表中找出相应同学的班级信息。

    2、把光标放在要展示数据的单元格中,如下图。

    3、在单元格中输入“=vl”会自动提示出VLOOKUP函数,双击蓝色的函数部分。

    4、单元格中出来VLOOKUP函数。

    5、选择第一列中需要匹配数据的单元格,选中一个就可以,然后输入英文状态下的逗号“,”。

    6、返回到第二张表【百度经验-表2】,选中全部数据。

    7、因为要返回的是【表2】中第四列的班级信息,所以在公式中再输入“4,”(逗号是英文的)。(ps:提示信息让选择“TRUE”或“FALSE”,不用选,直接按回车键就可以)

    8、按回车键之后,展示数据,效果如下图。

    9、要把一列中的数据都匹配出来,只需要按下图操作。

    10、完成操作,最终效果如下。

    注意:

    1、输入的符号需要是英文状态下的,如:逗号。

    2、所匹配的数据需要和当前数据不在同一个excel表,不然会匹配错误。

    (本文内容由百度知道网友艺天逊逻贡献)

  • ?

    Excel办公必备|多个表格之间快速导入数据

    慕梅

    展开

    对于一大部分走向职场的人来讲,Excel可能会经常用到。今天就分享一个比较实用的函数:多个表格之间快速导入数据 vlookup。

    很多人不明白这个函数的用法,今天我详细讲解一下。

    VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

    相信很多人看到这个很蒙圈吧。那我注解一下。

    lookup_value 要查找的值

    table_array 要查找的区域

    col_index_num 需要数据在查找区域的第几列数

    range_lookup 模糊匹配/精确匹配

    可能说还是有人说看不懂吧。那我们一起来看一个例子吧。

    我们看这两个表格:

    两个表格的数据不同需要将另外一个表的数据导入,即图中的成绩表总分导入学生表中。这时我们就利用vlookup。

    我们就在学生表中进行如下操作

    =VLOOKUP(D2,[成绩信息.xlsx]Sheet1!$A$1:$B$7,2,0) 我们可以看到在这实际运用中公式就是这样的。

    这样我们就可以把多个表格之间快速导入数据。

    在使用公式的时候我们需要注意我们选择的对象必须有一个在表格的最左侧。在我的例子中就是姓名一列必须有一个在表的最左侧,这是是两个数据在不同表或者Sheet页中需要满足。

    是不是感觉一下子可以从繁琐的工作解脱,早下班不是梦啦。

    如果有不懂的可以在评论区评论哦。

  • ?

    Excel超牛技巧:VLOOKUP数据匹配技能!

    仇姝

    展开

    很多办公人员,特别是统计业务条线上的朋友,都对数据匹配这个事头疼不已,有什么好的方法吗?当然有,今天我们详细解答一下vlookup函数的实际应用问题:

    vlookup函数举例:如下图,已知表sheet1中的数据如下,如何在 sheet2 中进行如下引用:当A列学号随机出现的时候,如何在B列显示其对应的物理成绩?也就是要将表一的数据自动填充道表耳相应位置!

    首先我们需要详细了解我们要用到的vlookup函数:vlookup是判断引用数据的函数,它有四个参数:

    1、判断的条件

    2、跟踪数据的区域

    3、返回第几列的数据

    4、是否精确匹配

    根据上面的定义,我们就可以在sheet2表的B2单元格输入公式:

    =vlookup(a2,sheet1!$a$2:$f$100,6,true)

    四个参数详细定义:

    1、a2 是判断的条件,也就是你需要匹配的对象;

    2、sheet1!$a$2:$f$100 是需要查找的数据区域;

    3、6 这是返回什么数所在的列数,如上图的物理是第6列,所以应该是6;

    4、是否绝对引用,如果是就输入 true 如果是近似即可满足条件 那么输入false

    结果如下图:

    特别提示:如果你比较厌烦输入这些超长的函数公式,你也可以直接插入:公式,插入公式,vlookup

    不知道你是否已经会使用vlookup这个条件查找函数,如果有什么不会的可以留言哦!

  • ?

    一看就会的多表关联,比vlookup好用多了!

    初彤

    展开

    在前面的关联规则文章中就曾提到过多表关联。什么是多表关联呢?多表关联和vlookup功能类似,不同于excel的复杂操作,在BDP多表关联仅需拖拽即可完成,无需任何函数和编程。

    案例说明:

    小粒是大学英语老师,工作中常常会涉及两张工作表,分别是学生学号表和英语课成绩表,如图:

    那小粒想要将这两张工作表按照不同的方式合成一张新的工作表,该如何操作呢?

    操作①

    在BDP工作表界面,右上角点击“创建合表”,选择“多表关联”,然后在左侧列表中选择需要关联的2个工作表并拖拽至右侧的编辑界面,如图~

    操作②

    根据工作表需求选择不同的关联类型,即左关联(Left join)或等值关联(Inner join)或全关联(Full join),这就是BDP的3大关联类型。可能大家看这3个有点晕,不急,接下来一一给大家解释哈~

    1、左关联 (Left join)

    Left join:左关联,表示以左表为主表进行关联操作。如果左表中某行在右表没有匹配,则结果中对应行右表的部分全部为空。

    小粒想要查看英语课上的学生学号是什么,只要将“英语课成绩”表作为左表,将“学生学号”表拖拽至左表的节点上面,系统默认选择“左关联”,并默认匹配两张工作表相同的字段名(可以进行修改、增减等操作),最后保存成新的工作表的名称即可完成需求。

    提示“字段名重复”,是因为两张工作表中都含有相同的字段“学生姓名”,可以在“字段设置”中勾掉右表的“学生姓名”,也可以改下字段名,比如改成“学生姓名2”,这样做是为了后期在分析时不易混淆。

    关联后的工作表数据如下:

    2、等值关联 (Inner join)

    Inner join:等值关联,表示对两表取交集。只返回两个表中联结字段相等的行。

    小粒想要查看两张工作表中既有学号又有英语课成绩的学生有哪些,只需要在修改关联方式,选择“inner join”即可,如图~

    关联之后的工作表数据如下:

    3、全关联 (Full join)

    Full join:全关联,表示对两表取并集。返回两表中所有数据,不管是否匹配。

    小粒想要查看两张工作表中有学号但无英语成绩、有英语成绩但无学号的学生有哪些,操作同“inner join”,选择“full join”即可,如图~

    关联之后的数据如下:

    三种情况都演示完了,有问题可以留言或私信哈~

    BDP是能同时支持多个工作表的关联,大家可以根据需求灵活设置关联字段哈!

    没有函数,没有编程的多表关联操作就这么轻松搞定了,是不是比vlookup简单好多,而且数据是实时更新的哦!

  • ?

    Excel小思维:多条件匹配数据,你会吗?

    巴恩斯特珀尔

    展开

    Hi,我是秋小叶~

    做 Excel 表格,一提到函数公式,很多人就头皮发麻。

    为什么?其一,因为表格需求千变万化,数据结构千差万别,一点点细微的差别,用法可能就大相径庭;其二,每个函数都有自己的语法规则,必须一五一十严格遵照它的要求,它才会乖乖听话。

    那有什么方法,可以在短时间内,快速提升函数公式的应用能力?答案只有一个——用!

    怎么用呢?

    在工作中以问题和需求为出发点,去找合适的方法。而要想成为个中高手,还有 2 种方式,系列化延伸和一题多解!通过对比不同的思路和方法,能对 Excel 基本技能有更加深入的认知。真到要用的那一刻,就能信手拈来。

    拿工作中最常用到的查找匹配为例,要在左边数据区域中查找出小王的销量数据 11,填写进 F2 单元格,怎么做?

    有一点 Excel 基础的人都知道,用一个 VLOOKUP 函数就够了:

    =VLOOKUP(E2,A:C,3,0)

    (拿着 E2 中的「小王」去匹配区域 (A:C) 的第一列,也就是员工一列中查找,找到以后返回匹配区域中同一行第 3 列的数据,也就是 11,其中最后一个参数 0 表示精确匹配,必须找一模一样的「小王」)

    这就是单条件的查找匹配。那……假如工作中需要按多个条件查找匹配呢?还能用 VLOOKUP 实现吗?

    举个例子,查找匹配出员工、医院、产品同时满足条件的销量数据,又该怎么做?

    直接查找匹配不行,我们可以明修栈道,暗度陈仓。既然多条件复杂,我们可以将多个条件合并成一个条件。

    首先插入一个空列,设为合并列。在 D2 单元格输入如下公式,将左边的三列合而为一:

    =A2&B2&C2

    ( & 是连接运算符,可以将单元格、数据拼接成新的文本)

    有了这个辅助列,作为查找匹配的索引,我们用 VLOOKUP 也能轻而易举的实现多条件查找匹配,只要在 J2 单元格输入如下公式即可:

    =VLOOKUP(G2&H2&I2,D:E,2,0)

    (和前面的公式不同点在于,查找对象换成了 G2、H2、I2 三个单元格合并以后的文本,匹配区域从 D 列开始到 E 列,这是因为VLOOKUP有一个前提条件:只在匹配区域的第一列中查找索引对象。)

    通过上述系列化延伸,你就能进一步了解更多知识点:

    VLOOKUP 的基本用法:只要在两张表中存在可以索引的数据,就可以查找到同一行中的其他数据

    用连接符 & 可以将多列数据合并为一列

    VLOOKUP 公式中可以嵌套使用其他公式,比如 G2&H2&I2 的计算结果作为查找对象

    VLOOKUP 公式只在匹配范围的第一列里查找匹配,按指定的列序返回结果

    到这里,问题已经解决。

    但是,学习高手可能会继续纵向深挖:

    如果用于索引的查找匹配列不在第一列时,例如合并列在销量列后头时,又该怎么做?

    或者横向扩展:

    多条件查找匹配,除了用 VLOOKUP+ 辅助列的方法,还有哪些方法?哪一种方法会更简单高效?

    要解决这个问题,其实我们就是追求 一题多解。预知详情,我们下期再聊。你也可以在评论区留下思路,交流碰撞说不定会激发出新的灵感。

  • ?

    Excel vlookup筛选两列的重复项与查找两个表格相同数据

    Tumaco

    展开

    Vlookup函数可用于多种情况查找,筛选重复数据就是其中之一,它既可筛选两列重复的数据又可查找两个表格相同的数据。筛选两列重复数据时,不仅仅是返回一项重复数据,是把所有重复的都标示出来;查找两表格相同数据时,两个表格既可以位于同一Excel文档,又可分别位于两个Excel文档,并且也可以标示出所有重复的数据;当查找两个位于不同Excel文档中的表格相同数据时,查找范围需要写文档名称和工作簿名称,这样Excel才能找到查找区域。以下是vlookup筛选两列的重复项与查找两个表格相同数据的具体操作方法,实例中操作所用版本均为 Excel 2016。

    一、Excel vlookup筛选两列的重复项

    1、假如要筛选出一个表格中两列相同的数据。选中 D1 单元格,把公式 IFERROR(VLOOKUP(B1,A:A,1,0),"") 复制到 D1,按回车,则返回重复数据 6;把鼠标移到 D1 右下角的单元格填充柄上,按住左键并往下拖,在经过的行中,AB两列有重复数据的都返回重复数据,没有的返回空白;操作过程步骤,如图1所示:

    图1

    2、公式说明

    公式 =IFERROR(VLOOKUP(B1,A:A,1,0),"") 由 IFERROR 和 VLOOKUP 两个函数组成。IFERROR 是错误判断函数,用它来判断 VLOOKUP 执行后,如果返回错误,则显示空(即公式中的 "");如果返回正常值,则什么也不返回,直接显示 VLOOKUP 的返回结果。B1 是 VLOOOKUP 的查找值,A:A 是查找区域,1 是返回第一列的值(即 A 列),0 是精确匹配。

    二、Excel vlookup查找两个表格相同数据

    有两张有重复数据的服装销量表(一张在“excel教程.xlsx”中,另一张在“clothingSales.xlsx”中)(见图2),需要把重复记录找出来,这可以用vlookup函数实现,方法如下:

    图2

    1、在两张表后都添加“辅助”列,用于标示有重复记录的行。把“excel教程”中的“辅助”列用自动填充的方法全部填上 1,操作过程步骤,如图3所示:

    2、切换到 clothingSale.xlsx,在 G2 单元格输入 =IFERROR(VLOOKUP(A2,;选择“视图”选项卡,单击“切换窗口”,选择“excel教程”,则切换到“excel教程”窗口,单击左下角 Sheet6,选择“视图”选项卡,单击“切换窗口”,选择 clothingSales.xlsx,切换回“excel教程”窗口,[excel教程.xlsx]Sheet6! 自动填充到了 A2 的后面,公式已经变为 =IFERROR(VLOOKUP(A2,[excel教程.xlsx]Sheet6!,继续输入 $A2:$G10,7,0),""),则完整公式为 =IFERROR(VLOOKUP(A2,[excel教程.xlsx]Sheet6!$A2:$G10,7,0),""),按回车,则返回 1;把鼠标移到单元格填充柄上,往下拖,则查找出所有重复的记录(有 1 的为重复记录),操作过程步骤,如图4所示:

    3、公式说明

    公式 =IFERROR(VLOOKUP(A2,[excel教程.xlsx]Sheet6!$A2:$G10,7,0),"") 也由 IFERROR 和 VLOOKUP 两个函数组成,IFERROR函数的作用跟上文的“vlookup筛选两列的重复项”一样。VLOOKUP函数的查找值是 A2;查找区域是另一个文档(即[excel教程.xlsx]文档的 Sheet6 工作簿)的 $A2:$G10(即查找表格的每一列每一行),$A2 表示绝对引用 A 列,相对引用“行”,即执行公式时,列不变行变,$G10 与 $A2 是一个意思;返回列号为 7;0 表示精确匹配。

    4、注意

    1、当 clothingSales 文档中的第2行与“excle教程”文档中第9行的“编号”相同时,如图5所示:

    图5

    2、尽管两张表格中的第二行不同,则会返回错误的结果(即返回 1),如图6所示:

    图6

    3、这种情况发生在要查找值(即 A2)所在的列(即 A 列)。由此可知,这种方法只适合查找两个表格对应行相同数据。

excel多表数据匹配

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP