Excel 求两个不带 VBA 的数组的交集

Excel Find intersection of two arrays without VBA

我有两列填满了数字和 N/A。如何在不使用 VBA 的情况下找到两个数组的交集? 假设在 A2:A8 中我有 (1,3,4,7,10,"N/A",12) 在 B2:B10 中我有 (2,3,5,7,15,20 ,40,"N/A",60)。我需要交集,不包括 "N/A",在这个例子中应该是 (3,7)。

C2 中,您可以使用如下公式:

 =if(AND(countif($A:$A, B2)>0,NOT(ISNA(B2))), B2, "")

并将其复制到 C10。结果将是排除 #N/A

的交集

那个公式说 "If there is a match in A2:A8 for B2 AND B2 is not #N/A then grab B2 otherwise grab nothing"

它可以被简化,它只会吐出一个 true/false with:

=countif($A:$A, B2)>0 * NOT(ISNA(B2)) 

没有 IF 包围的东西是一样的。

在您的示例中,预期结果 (3,7) 表示 A 列和 B 列中同一行上的数字。 因此,我假设不会包括不同行上的相同数字。

C 列:

=IF(OR(ISNA(A1),ISNA(B1)),"",IF(A1=B1,A1,""))