Excel公式需求:提取不含'Total'的指定区域唯一字段
解决Excel提取唯一值并排除含"Total"条目的问题
原公式问题分析
你使用的公式UNIQUE(FILTER(A1:B6,A1<>"*Total*"))无法正常工作,原因有两点:
- 条件仅针对单个单元格A1,没有遍历整个A列区域(A1:A6),无法逐行判断是否包含"Total"
- 直接用
<>"*Total*"无法实现"排除包含指定文本"的逻辑,Excel中这种写法是判断单元格是否精确等于"Total",而非是否包含"Total"
正确公式
方法1:用SEARCH+ISNUMBER判断包含关系
=UNIQUE(FILTER(A1:B6,NOT(ISNUMBER(SEARCH("Total",A1:A6)))))
SEARCH("Total",A1:A6):逐行查找A列单元格中是否包含"Total",找到则返回位置数字,找不到返回错误值NOT(ISNUMBER(...)):将包含"Total"的行转为FALSE(被过滤),不包含的行转为TRUE(被保留)UNIQUE(...):对筛选后的结果提取唯一值
方法2:用COUNTIF判断包含关系
=UNIQUE(FILTER(A1:B6,COUNTIF(A1:A6,"*Total*")=0))
COUNTIF(A1:A6,"*Total*"):逐行统计当前A列单元格是否包含"Total",包含返回1,不包含返回0- 筛选出返回0的行后,再提取唯一值
效果验证
针对你的示例表格:
| Id | name |
|---|---|
| A | A |
| A | A |
| A Total | A |
| B | B |
| B Total | B |
使用上述公式后,会得到期望的结果:
| Id | name |
|---|---|
| A | A |
| B | B |
内容的提问来源于stack exchange,提问作者Fazza
相关产品推荐
相关产品推荐

