在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找到匹配的行。
如果您在理解我的问题时遇到任何问题,或者您需要我帮助澄清某些问题,请告知我们。我现在已经有几天这个问题而且似乎无法解决这个问题。我将在下一个小时内主动检查这个帖子。
谢谢。
答案 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
是否找到了您要查找的值。