从数据区域中匹配出与查找区域不一致的所有单元格,之前给大家分享过最优的 PQ 解法。有宝子询问用公式是否能实现?
必须能啊,强大的 365 函数可以轻松解决需求。
案例:将下图 1 中左侧数据表的姓名去重,然后与 D 列的姓名相比,提取出所有未在 D 列中出现过的唯一姓名,排成一列。
效果如下图 2 所示。
解决方案:1. 将 G 列作为辅助列,在 G2 单元格中输入以下公式 --> 回车:
=UNIQUE(TOCOL(A2:B10))
公式释义:
TOCOL(A2:B10):将 A2:B10 区域的单元格合并成一列;
UNIQUE(...):从上述列中提取出唯一值
2. 将 H 列作为第二个辅助列,在 H2 单元格中输入以下公式 --> 下拉复制公式:
=IF(ISNONTEXT(XLOOKUP(G2,D:D,D:D)),G2,NA())
公式释义:
XLOOKUP(G2,D:D,D:D):从 D 列中查找 G2 单元格的值,并返回找到的结果;
ISNONTEXT(...):判断上述公式结果是否不是文本,是文本的话表示能匹配到结果,不是文本则说明匹配不到;匹配不到的,返回 true,反之则返回 false;
IF(...,G2,NA()):如果匹配不到,则返回 G2 单元格的值,否则显示错误值;也就是从 G 列中提取出未在 D 列中出现过的值
3. 在 E2 单元格中输入以下公式 --> 回车:
=TOCOL(H2:H17,2)
公式释义:
再一次使用 tocol 函数将 H 列的公式结果转换成一列,去除错误值;
参数 2 表示忽略错误值