将一个工作表中的两列匹配到另一个工作表中的两列

时间:2013-11-16 20:18:29

标签: excel excel-formula vlookup worksheet-function countif

我需要根据两个工作表之间的VLOOKUP查询为行分配状态。问题是标识符并不总是唯一的。但是,标识符+日期值应该是唯一的。我想用:

=VLOOKUP(A3&H3,'OtherSheet'!D:E,1,FALSE)  

以A3为标识符,H3为对应日期。另一张表中的D是标识符,E是日期列。但是,我一直在#N / A。

这是否意味着与“标识符+日期”没有匹配,或者Excel在列D或E中寻找“标识符+日期”?如果后者为真,那么在匹配搜索模式时如何让Excel连接D和E?

3 个答案:

答案 0 :(得分:1)

无需使用CTRL + Shift + Enter即可解决。

使用此公式将其他表格和H3的D列中的A3与其他表格的E列中的日期匹配。

=INDEX(OtherSheet!F:F,MATCH(1,INDEX((OtherSheet!D:D=A3)*(OtherSheet!E:E=H3),),0))

该公式将从OtherSheet的F列返回数据。 您可以根据需要修改范围OtherSheet!F:F

答案 1 :(得分:0)

该公式希望找到与OtherSheet ColumnD中仅包含标识符的H3(标识符和日期)连接的A3,因此将不可避免地失败。是的,Excel正在D列中寻找“标识符+日期”。

Excel将很快将A3与H3'连接'(在公式中)连接起来,但不会以同样的方式快速地连接OtherSheet ColumnD和ColumnE值。传统的解决方案,因为在这种情况下通常最简单,是通过添加一个辅助列来准备VLOOKUP,该辅助列连接D和E值,同时将这些保留在与所寻求的值相同的行中。

因为VLOOKUP只向右看,所以这通常是一个添加到被搜索值左边的列,所以要么在C中,要么在C的右边插入一列。但是,从那以后您只检查单个列的位置并不重要。您可以将此(在OtherSheet中)添加为ColumnZ,其公式如下:

=D2&E2  

向下复制以适合*。同样,因为您只检查单个列,所以将这样的公式放在哪一行并不重要。

但是,因为只检查OtherSheet中是否存在A3& H3,一个简单的替代方案可能是申请COUNTIFS:

=COUNTIFS(OtherSheet!D:D,A3,OtherSheet!E:E,H3)

0之外的任何结果都应表明正在测试的组合存在于OtherSheet中 - 无需帮助列。

*根据标识符的格式,串联可能会引入歧义。例如,与11/1/15连接的ID90可能无法与与1/1/15连接的ID901区分开来,因此在VLOOKUP公式(例如A3&"|"&H3中采用这种方法引入分隔符可能是明智的。而不只是A3&H3),因此也在帮助列中,比如=D2&"|"&E2

答案 2 :(得分:0)

您可能希望使用索引/匹配。在搜索多个内容时,Vlookup很棘手。这就是你使用索引/匹配的方式:

如果不知道电子表格的设置方式,请按以下步骤操作:

如果我理解正确,您希望使用A3在OtherSheet!D中查找匹配项,并在OtherSheet!E中找到H3匹配项。索引匹配非常适合这种情况。而不是vLookup,请使用

=Index(OtherSheet!D:D&","&Text(OtherSheet!E:E,"mm-dd-yyyy"),Match(A3&H3,OtherSheet!D&OtherSheet!E,0)),然后输入CTRL+SHIFT+ENTER

Index()将返回的是连接的标识符和日期,用逗号分隔。但是,如果你有一个这样的表:

enter image description here

该指数/匹配公式将返回" Batman"。要返回的索引是命名范围G2:G5。您正在寻找A1(标识符)和B1(日期)上的匹配项,然后您正在搜索(按照您刚刚放置的顺序)标识符位于E2:E5范围内,并且日期为F2:F5。如果两者都匹配,则返回G2:G5中的名称。

这里是a site on使用索引/匹配和another的链接及其优于vlookup的优势。