繁体   English   中英

如何比较Excel中的两列(来自不同工作表),如果前两列匹配,则复制相应列中的值?

[英]How to compare two columns in Excel (from different sheets) and copy values from a corresponding column if the first two columns match?

我正在尝试将工作表1中的列a与工作表2中的列a进行比较,然后将工作表2中相应的值从工作表2中的工作表1复制到列b(其中列值匹配)。 我一直在努力阅读如何做到这一点,但我不确定我是否应该尝试创建一个宏,或者如果有更简单的方法来做这个,可能是VLOOKUP或MATCH? 我真的不熟悉这些功能如何工作。

此外,如果它有所不同,则表2中的列b中将存在重复值。

表1

12AT8001    1
12AT8002    2
12AT8003    3
12AT8004    4
12AT8005    5
12AT8006    6

表2

12AT8001
12AT8001
12AT8001
12AT8001
12AT8001
12AT8002
12AT8002
12AT8002
12AT8002
12AT8002
12AT8003
12AT8003
12AT8003
12AT8003
12AT8003

如果参考值(列A,表1)按升序排列,则Vlookup很好。 另一个选项是索引和匹配,无论顺序如何都可以使用(只要列a,表1中的值是唯一的)

这是你在第2页的B栏中放的内容

=INDEX(Sheet1!A$1:B$6,MATCH(A1,Sheet1!A$1:A$6),2)

设置Sheet1!A$1:B$6Sheet1!A$1:A$6作为命名范围使其更加用户友好。

正如kmcamara发现的那样,这正是VLOOKUP要解决的问题,使用vlookup可以说是完成工作的最简单的替代方法。

除了lookup_value的三个参数,要搜索的table_range和返回值的column_index之外,VLOOKUP还有一个可选的第四个参数,Excel文档称之为“range_lookup”。

扩展deathApril的解释,如果此参数设置为TRUE(或1)或省略,则表范围必须按照函数范围的第一列中的值的升序排序,以返回通常理解为“正确”的价值。 在此默认行为下,函数将返回基于完全匹​​配的值(如果找到),或者如果未找到完全匹配则返回近似匹配。

如果匹配是近似值,则函数返回的值将基于小于lookup_value的下一个最大值。 例如,如果工作表1中的表中缺少“12AT8003”,则工作表2中该值的查找公式将返回“2”,因为“12AT8002”是表格范围的查阅列中的最大值比“12AT8003”。 (例如,如果目标是在税表中查找费率,则VLOOKUP的默认行为非常有意义。)

但是,如果第四个参数设置为FALSE(或0),则VLOOKUP仅在存在完全匹配时返回查找值,如果不存在则返回错误值#N / A. 现在通常的做法是在IFERROR函数中包含精确的VLOOKUP,以便优雅地捕获不匹配。 在引入IFERROR之前,使用VLOOKUP公式检查IF函数是否匹配,以检查是否存在匹配,并且一次返回实际匹配值。

尽管最初难以掌握,但deusxmach1na提出的解决方案是对VLOOKUP的一组强大替代方案的变体,可用于返回查阅列左侧的列或列表的值,扩展为处理完全匹配的情况需要一个标准,或者修改为在多个标准之间包含OR和AND匹配条件。

重复kcamara选择的解决方案,这个问题的VLOOKUP公式将是:

   =VLOOKUP(A1,Sheet1!A$1:B$600,2,FALSE)

制作一个真值表并使用SUMPRODUCT来获取值。 将其复制到Sheet2上的单元格B1中,并根据需要进行复制:
=SUMPRODUCT(--($A1 = Sheet1!$A:$A), Sheet1!$B:$B)
创建真值表的部分是:
--($A1 = Sheet1!$A:$A)
这将返回0和1的数组。 当值匹配时为1,而当值不匹配时为0。 那之后的逗号基本上会做我称之为“有趣”的矩阵乘法并返回结果。 我可能误解了你的问题,Sheet1的A列是否有重复的值?

尝试:

sheet 2 a1 =vlookup(sheet2a1,sheet1$a$1:$b$6,2)

然后将其向下拖动。

它应该工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM