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,""))
我有两列填满了数字和 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,""))