暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

如何对两张excel表进行关联以筛选符合条件的数据?

原创 周波 2025-02-19
828

一、前言

  在对大量数据进行处理分析时,我们可能会有较为复杂的数据处理需求,例如:现存在一张拥有几百万行数据的Excel表(表1),一张拥有几百行数据的Excel表(表2),表1与表2均有属性列name,在表1中,该属性列去重之后的基数高达几十万,现在有这样一个需求,如何依据表2的name列值将表1中符合条件(表1.name=表2.name)的数据筛选出来呢?若采用人工手动一一查找筛选,那将会是一件令人头疼、耗时费力的事,若在数据库中,这是一件非常简单的事,可以通过内连接将符合条件的数据筛出,例如:

select a.* from a,b where a.name = b.name;

  那针对Excel表,该如何处理呢?方法很多,本文将通过Excel提供的vlookup内置函数来完成该诉求,下文将展示详细的操作步骤。

二、操作步骤

  本文仅是实操演示,为了方便展示,只用少量数据进行测试。

(1)准备测试表

  准备两张测试表,放入同一个excel文件中,如下所示:
image.png
image.png
  Sheet1表拥有1列8行数据,Sheet2表拥有1列2行数据。

(2)在Sheet1表中添加新列name1

  name1的值通过vlookup()函数计算,如下所示:
image.png

=VLOOKUP(A2,Sheet2!$A$2:$A$3,1,FALSE)

  参数说明

  • 第一个参数表示查找值,默认与搜索区域中第一列的所有值进行比对。
  • 第二个参数表示搜索区域(或数据表),此处为Sheet2!$A$2:$A$3,表示搜索区域为Sheet2表的第A列2行至第A列3行,搜索区域可以在同一个Sheet表中,在列和行前使用$符号可以固定搜索区域,避免填充时,搜索区域因为行的变化而变化。
  • 第三个参数表示该单元格取搜索区域第1列(参数值为1)中第一个匹配上的值。若搜索区域有多列,也可以指定其它列,列序数从1开始。
  • 第四个参数表示匹配条件,false表示精确匹配,即sheet1.name=sheet2.name。

  上述公式含义:针对sheet1中第A列的每一个值,都会与搜索区域Sheet2!$A$2:$A$3中第A列的所有值按行顺序进行比对,一旦匹配到,单元格则取对应的行列值并终止比对操作,若未在搜索区域中找到相应的值,则单元格取值#N/A(空值)。

(3)数据填充

  选中待填充区域的第一个单元格,然后将鼠标移至待填充区域的最后一个单元格,按住shift键,随后点击最后一个单元格,即可快速选中一个填充区域,最后按crtl+d组合键进行快速填充,如下所示:
image.png
image.png

(4)数据筛选

  最后对name1列进行筛选,取消勾选#N/A值,即可筛选出符合条件的数据,如下所示:
image.png

最后修改时间:2025-02-19 19:07:42
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论