excel怎么换行在同一单元格内_Excel 如何按设定条件提取单元格内的字符串?

之前曾经教过大家怎么从单元格中取部分字段,需求简单的可以用 left, mid, right 函数,详情可以看 Excel 实用 tips(二) – 分分合合数据列。

如果需要有条件地提取,怎么操作?

案例:

比如下表,A 列是某国际学校大中华区的学号,前面的英文字母是所在的地区的缩写。

现在需要按地区把学号提取到 B、C、D 列中,不用再显示字母缩写,怎么做?

这就需要用到 find 和 right 函数配合使用。

4c9072b80fd6187adb41037b9d396996.png 9e8ce186fbf447736e6cd25deaf2eb70.png

本案例其实涉及两个知识点:

  1. 怎么从第 4 个字符串开始提?

  2. 怎么按规定条件提?

1. 怎么从第 4 个字符串开始提?

解决方案:

基础的 right 函数是从右往左提 n 位,要实现这次的需求,有两个办法:

1) =MID(A2,4,99)

2) =RIGHT(A2,LEN(A2)-3)

我来翻译一下:

  • =MID(A2,4,99):从中间第 4 位开始取,取 99 位

    * 注:因为学号一般不会超过 99 位数,所以设置 99 可以保证长度足够,不会漏提取

  • =RIGHT(A2,LEN(A2)-3):用 LEN 函数计算 A2 单元格的字符串总长度,把这个长度减去 3,即从右往左提到倒数第 4 位

这次我们用第 2 种方法提取,得到下面的结果,第一个业务需求已经实现了。现在我们再来解决第二个业务需求。

6205c8e7568805e51a5d63bb643782bc.png

2. 怎么按规定条件提?

也就是说在“中国学号”这一列,只提取“CN_”开头的单元格,怎么实现?

解决方案:

公式:=IF(FIND("CN_",LEFT(A2,3)),RIGHT(A2,LEN(A2)-3))

翻译一下:红色部分是增加的函数,也就是说,在提取之前,先去做以下运算:

  • 取 A2 单元格的前三位:left 函数

  • 判断这三位是否等于 “CN_”:find 函数

  • 如果满足上述条件,则从第 4 位开始取值

* 请注意:find 函数区分大小写,如果不需要区分大小写,可以用 search 函数

3. 在 C 和 D 列把公式中的 “CN_”分别替换成“TW_”和“ HK _”,就已经实现本案例需求了。

但是,很丑陋对不对?

不想显示错误提示怎么操作?

7d0d46a19e392e3efa807246dc66f806.png

解决方案:

公式:=IF(ISERROR(FIND("CN_",LEFT(A2,3))),"",RIGHT(A2,LEN(A2)-3))

翻译一下:红色部分是调整部分,增加了以下判断逻辑

  • 用 iserror 函数把 find 函数包起来:如果查 “CN_” 开头的值返回错误的话,

  • 则显示空:””

调整完以后就得到了我们想要的结果。

9e8ce186fbf447736e6cd25deaf2eb70.png 学习 Excel 技巧,长按二维码关注:

Excel学习世界

转发、在看也是爱!

1e8cee70be7cc5071a02c7cc75ecac8c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值