如何在Excel中进行多列匹配
我的电子表格如下所示:如何在Excel中进行多列匹配,excel,Excel,我的电子表格如下所示: A B C D ------------------------------------ 1 | Yes | No | | | | 2 | 1 | 1 | 0 | 1 | 0 | ------------------------------------ ------------------------------------ 12| Yes | No
A B C D
------------------------------------
1 | Yes | No | | | |
2 | 1 | 1 | 0 | 1 | 0 |
------------------------------------
------------------------------------
12| Yes | No | | Yes | Yes |
13| Yes | Yes | No | No | |
14| Yes | No | | No | Yes |
15| No | Yes | No | No | |
...
我想根据几个条件用1或0填充第2行的单元格。如果满足以下所有条件,则该值应为1(使用单元格D2作为参考):
我需要能够跨多个列动态地应用此功能,因此我试图避免编写特定于列的函数。我意识到我可能可以编写一个UDF来执行此操作,但如果可能的话,我想避免这样做。如果没有UDF,我不确定您的问题是否有一个完整的答案,但我会对该方法提出一点疑问,并说“为什么要复杂化”,并且此列不是空的(但可以是任何其他值)?” 为什么不从该字段向后查找行匹配?在我看来,它只会将事情按列移动,事实上,这正是你在A2中所做的,因为在a之前没有任何内容。因此,在重复行上进行匹配,例如,D2将包含与C2中的示例基本相同的信息 要在字段中查找重复项,可以使用类似于C2:
=IF(SUMPRODUCT((A3:A15=A1)*1,(B3:B15=B1)*1,(C3:C15=C1)*1)>1,1,0)的公式
在D2中,您可以复制该公式并添加(D3:D15=D1)*1
,等等。,因为这是一个挑战,我尝试过并想出了它
=SIGN(SUM(--(MMULT(($A1:A1=$A12:A15)*(B12:B15<>""),TRANSPOSE(COLUMN($A12:A15)^0))=COLUMNS($A1:A1))))
因为除非整列为空,否则它将是1
我不明白为什么C2是0?@TomSharpe C2失败了#2。它在第12行和第14行上查找匹配项,但这两行的C列都为空。我对问题进行了编辑,使之更加清晰。我尝试了一个SUMPRODUCT解决方案,结果看起来有点像你的。我的问题是,我想对函数进行泛化,这样我就可以在许多列中应用它。我试图避免手动添加D列(以及E列、F列等)。太棒了。工作完美。我以前没用过MMULT。我得仔细看看这是怎么回事。谢谢
=sign(counta(a12:a15))