Excel 从另一个数组中查找不在一个数组中的结果

问题描述 投票:0回答:2

在不使用 VBA 的情况下,有没有办法找到一个数组与另一个数组相比缺少的结果并将其输出到单元格中。

我有两张表,表 1 上是 B 列中的数字列表,如果我们完成了它们,则 J 列中为“N/A”。在 Sheet2 上,我们将数字列表粘贴到 B 列中。我需要能够找到 Sheet2 中缺少的、在 Sheet1 中没有“N/A”标签的数字,并将它们输出到 C 列。

我尝试了 {=INDEX(Sheet1!B:B,MATCH(1,(Sheet1!B:B<>B:B)*(Sheet1!J:J<>"N/A"),0))} 但是(Sheet1!B:B<>B:B) 似乎没有做我认为应该做的事情。据我所知,上面的公式不会给出超过 1 个结果。我需要添加一些内容来消除 C 列中已有的结果,但一次一步。

arrays excel compare
2个回答
0
投票

Sheet1!B:B<>B:B
比较两个工作表中的相应单元格。除非数字出现在两张表中完全相同的行,否则您的代码将无法工作。

我认为不可能用数组公式来处理这个问题,因为

Match
不接受数组作为其第一个参数。但您可以在 C1 中输入此内容并复制并粘贴到整列:

=IF(ISERROR(MATCH(Sheet1!B1,Sheet2!B:B,0)),IF(Sheet1!J1<>"N/A",Sheet1!B1,""),"")

但是会有空单元格。


0
投票

完整列表是一个数组,例如 A1:E10,我假设您可以将其引用为 A1# 子列表是一个从 G1:J6 开始的数组,我假设您可以将其引用为 G1#

您想查看“子列表”第一列中的任何值是否不存在于“完整列表”第一列中

=Let(fulllist,索引(A1#,,1),子列表,索引(G1#,,1),结果,过滤器(子列表,NOT(ISNUMBER(XMATCH(子列表,fullllist,0)))),结果)

显然,要查看完整列表中确实存在哪些,您需要删除 NOT 语句和相关括号。

**警告 --- 这适用于较新版本的 excel,允许数组溢出范围。

© www.soinside.com 2019 - 2024. All rights reserved.