Excel:将两列与另外两列匹配

时间:2015-06-15 20:04:34

标签: excel

在excel中,我有四列。专栏A& B彼此对应,列C& D彼此对应。我想要做的是创建一个公式,该公式从A列获取值,在C列中搜索,查找匹配项。如果找到匹配项,则它将从列B获取相应的值(同一行),并在列D中搜索与列B中的值匹配的值。如果两个值最终都找到匹配项,则返回1 in列E,在A& B在。

到目前为止,这是我在E栏中输入的内容。

= IF(MATCH(A1,$ C:$ C,0)MATCH(B1,$ d:$ d,0),1,0)

我的问题是,我不知道如何使B匹配仅检查A找到匹配的行。

如果您在理解我的问题时遇到任何问题,或者您需要我帮助澄清某些问题,请告知我们。我现在已经有几天这个问题而且似乎无法解决这个问题。我将在下一个小时内主动检查这个帖子。

谢谢。

3 个答案:

答案 0 :(得分:1)

我会给出两个答案。

第一个要求匹配在C和D列的相同行中。因此,如果A2匹配C3,C4,C5,那么B2将需要匹配D3,D4或D5

=IF(SUMPRODUCT(--($C$1:$C$5=A1),--($D$1:$D$5=B1))>0,1,0)

由内而外 - ($ C $ 1:$ C $ 5 = A1)将A1与C1到C5中的所有值进行比较,如果为真则返回1,如果为假则返回0 Sumproduct将这些放在一起,因此您需要在两侧获得真实 如果语句仅用于将数字限制为1(如果匹配2行则返回2)

根据问题进行扩展 - 你可以在公式中使用 - (C:C = A1)它需要更长的时间来计算,因为它正在处理更多的单元格

每次C列中的单元格等于A1时,

--(C:C=A1)将返回一个类似于{0,0,0,1,0,0,1}的数组,其数值为1。 每当D中的单元格与B1匹配--(D:D=B1)时,{0,1,0,0,0,0,1}公式将对1进行相同的操作。 Sumproduct将这些数组{0*0,1*0,0*0,1*0,0*0,0*0,1*1}相乘,并将结果(0+0+0+0+0+0+1) = 1相加。

这个sumproduct公式可以返回任何整数值(如果没有匹配则为0,如果有一组匹配的单元则为1,如果有2组匹配的单元则为2,等等)。

通过将其包装在if(sumproduct(..)> 0,1,0)中,只意味着它将始终返回0(不匹配)或1(一个或多个匹配)。

希望这有帮助。

编辑:不需要公式

下一个公式看起来在C列的某处匹配A2,然后看起来匹配B2中D列的某个地方不必是同一行。

=IF(IFERROR(MATCH(A1,$C$1:$C$5,0)*MATCH(B1,$D$1:$D$5,0),0)>0,1,0)

匹配你知道 iferror只是让它返回0,如果没有匹配 if if语句只返回1,如果值为> 0(如果两列都匹配)。

答案 1 :(得分:1)

这样就可以了解

=SUMPRODUCT((C:C=A1)*(D:D=B1))

您可以缩小跨越的高度(例如,=SUMPRODUCT((C1:C100=A1)*(D1:D100=B1))

答案 2 :(得分:0)

使用ISERROR检查MATCH是否找到了您要查找的值。