Excel中如何用公式列出包含特定文本的所有单元格?

如下图,希望用公式得到“以分布式开始”的G列数据。

一、高版本公式

=FILTER(E2:E9,LEFT(E2:E9,3)="分布式")

用LEFT函数提取数据的左侧3个字符,是“分布式”的就是以它开始的数据了,用FILTER函数筛选出来即可。

二、低版本公式

如果excel版本不能使用FILTER函数,可以用以下公式:

=INDEX(E:E,SMALL(IF(LEFT($E$1:$E$99,3)="分布式",ROW($E$1:$E$99),99),ROW(A1)))&""

公式解析:

经典的INDEX+SMALL+IF+ROW组合。

IF(LEFT($E$1:$E$99,3)="分布式",ROW($E$1:$E$99),先提取数据左侧三个字符,如果是“分布式”,就返回它的行号,否则返回99,

然后用SMALL函数从小到大的返回符合条件的行号,作为INDEX的第二个参数,就得到了需要筛选的以“分布式”开始的数据。

公式中的99是个比较大的数,用于所有数据区域不超过99行,如果有可能大于99,就把它改大,如1000或10000,就可以了。

### 如何在 Excel 中提取单元格内的文本 #### 使用 LEFT 和 RIGHT 函数提取指定位置的文本 可以利用 `LEFT` 或 `RIGHT` 函数来提取单元格开头或结尾的部分文本。例如,如果希望从单元格 A1 的左侧提取前 5 个字符,则可以在目标单元格中输入以下公式: ```excel =LEFT(A1, 5) ``` 这会返回 A1 单元格中最左边的五个字符[^1]。 #### 利用 MID 函数提取中间部分的文本 当需要提取位于字符串中部的内容时,可使用 `MID` 函数。假设需从单元格 B1 的第 7 位开始提取长度为 8 的子串,则应使用如下公式: ```excel =MID(B1, 7, 8) ``` 此操作将获取自第七个字符起连续八个字符组成的片段。 #### 正则表达式的应用——BK_REGEX_STRING 公式 对于更复杂的模式匹配需求,比如基于某种规律抽取数据项,可以通过安装插件支持正则功能实现自动化处理过程。例如,“bk_regex_string”允许定义特定规则从而精准定位所需信息并将其分离出来[^2]。 #### 条件判断结合逻辑运算符筛选符合条件的数据条目 为了区分仅含字母与既包含字母又掺杂数字两类情况下的不同表现形式,可通过构建复合条件语句达成目的。像这样设置公式即可完成相应任务: - **检测是否全由非数值组成** ```excel =ISTEXT(A1) ``` - **依据真假值决定采取何种方式裁剪源材料** 假设判定标准存储于 C 列而原始资料存在于 A 列的话, 可以编写这样的指令用于动态调整输出样式: ```excel =IF(C1=TRUE,LEFT(A1,3),LEFT(A1,5)) ``` 上述例子展示了根据不同条件下选取适当数量字符的技术方案[^3]。 #### 多行文本拆分技巧 针对某些特殊场景下可能遇到的一格内存在多段独立叙述的情形,这里提供一种解决办法。假定每一段之间都存在着换行符作为间隔标志物,则下面给出了一种可行路径用来逐一分离这些组成部分: 首先进入编辑状态,在任意空白区域写下基础框架结构: ```excel =TRIM(MID(SUBSTITUTE($A$1,CHAR(10),REPT(" ",LEN($A$1))),ROW()-MIN(ROW($A:$A))+1*LEN($A$1)-LEN($A$1)+1,LEN($A$1))) ``` 随后拖拽填充柄向下扩展直至覆盖整个待解析范围为止[^4]。 以上就是几种常见的 excel 文本提取手段介绍及其应用场景说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值