Excel如何筛选出相邻单元格均为Unavailable的唯一名称?
方法一:动态数组公式(Excel 365/2021及以上版本)
直接用UNIQUE+FILTER+BYROW+LAMBDA组合公式,无需辅助列:
=FILTER(UNIQUE(A2:A[最后一行行号]), BYROW(UNIQUE(A2:A[最后一行行号]), LAMBDA(x, AND(FILTER(B2:B[最后一行行号], A2:A[最后一行行号]=x, "")="Unavailable"))))
公式逻辑:
UNIQUE(A2:A[最后一行行号]):提取A列所有不重复名称BYROW(..., LAMBDA(x, ...)):遍历每个唯一名称x,执行判断逻辑FILTER(B2:B[最后一行行号], A2:A[最后一行行号]=x, ""):筛选当前名称x对应的所有B列值AND(...)="Unavailable":判断这些B列值是否全部为Unavailable,满足则返回TRUE,否则FALSEFILTER(...):最终只保留判断结果为TRUE的唯一名称
方法二:数据透视表法(全版本通用)
- 选中数据区域,插入数据透视表
- 将A列名称拖到「行」区域,B列拖到「值」区域
- 点击值区域的字段设置,把汇总方式改为最小值(或最大值,全为
Unavailable时最小/最大值都是该文本) - 在数据透视表的行标签筛选器中,设置筛选条件:值区域等于
Unavailable - 此时行标签显示的就是所有对应B列全为
Unavailable的名称
方法三:辅助列+高级筛选(旧版本Excel无动态数组时用)
- 新增辅助列C,在C2单元格输入公式,下拉填充至数据末尾:
=COUNTIFS(A:A,A2,B:B,"<>"&"Unavailable")
该公式统计当前名称对应行中,B列不为Unavailable的行数,结果为0则说明该名称所有行的B列都是Unavailable
2. 选中整个数据区域,点击「数据」选项卡中的高级筛选
3. 设置筛选条件:C列等于0
4. 复制筛选后的A列数据,删除重复值即可得到目标名称
内容的提问来源于stack exchange,提问作者iceman
相关产品推荐
相关产品推荐

