You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel技术问题:如何列出区域内包含两个指定字符的单元格

解决方法:提取同时包含两个指定字符的单元格

原公式失效原因

你用的=AND(ISNUMBER(SEARCH("A";$C$2:$C$14)); ISNUMBER(SEARCH("T";$C$2:$C$14)))无法正常运行,核心问题有两个:

  • AND是聚合函数,处理数组时会把所有单元格的判断结果合并成一个单一的TRUE/FALSE,无法逐行返回每个单元格的判断结果
  • 普通公式模式下,直接引用整区域$C$2:$C$14只会计算区域第一个单元格(C2)的结果,不会自动遍历所有单元格

方案1:逐行标记符合条件的单元格(对应P列效果)

在P2单元格输入以下公式,下拉填充到P14:

=AND(ISNUMBER(SEARCH("A",C2)),ISNUMBER(SEARCH("T",C2)))

公式会逐行检查C列对应单元格是否同时包含"A"和"T",返回TRUE(符合)或FALSE(不符合)。如果需要自定义显示文本,用IF函数扩展:

=IF(AND(ISNUMBER(SEARCH("A",C2)),ISNUMBER(SEARCH("T",C2))),"符合","不符合")

方案2:提取所有符合条件的单元格内容(对应Q列效果)

适用于Excel 365/2021(支持动态数组)

在Q2单元格输入公式,会自动溢出所有符合条件的结果:

=FILTER($C$2:$C$14,ISNUMBER(SEARCH("A",$C$2:$C$14))*ISNUMBER(SEARCH("T",$C$2:$C$14)))

这里用*代替AND,因为数组运算中TRUE*TRUE=1、TRUE*FALSE=0,FILTER会筛选出结果为1的行。

适用于旧版Excel(不支持动态数组)

在Q2单元格输入以下数组公式,按Ctrl+Shift+Enter确认,然后下拉填充直到出现空白:

=INDEX($C$2:$C$14,SMALL(IF(ISNUMBER(SEARCH("A",$C$2:$C$14))*ISNUMBER(SEARCH("T",$C$2:$C$14)),ROW($C$2:$C$14)-ROW($C$2)+1),ROW(A1)))

原理:用IF筛选出符合条件的行号,SMALL依次提取第1、2、3...个符合条件的行号,最后用INDEX返回对应单元格内容。

内容的提问来源于stack exchange,提问作者neke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 14:15:31