本文总共942个字,阅读需4分钟,全文加载时间:3.158s,本站综合其他专栏收录该内容! 字体大小:

文章导读:利用search函数将下列单元格中的数字提取出来: 在字符串中,数字和英文字母,英文标点符号占一个字节;汉字和汉字标点符号占两个字节。 (1) 通配符“?”+SEARCHB函数 在单元格内输入:=searchb(“?”,字符串所在单……各位看官请向下阅读:

利用search函数将下列单元格中的数字提取出来:

在字符串中,数字和英文字母,英文标点符号占一个字节;汉字和汉字标点符号占两个字节。

(1) 通配符“?”+SEARCHB函数

在单元格内输入:=searchb(“?”,字符串所在单元格)

解析:

searchb函数中的“?”表示查找字符串中任意一个字节,由于前面的“好好学习”四个字都是两个字节,所以查找的结果是“1”,而“1”在字符串中为第9个字节,所以最终返回的结果为9。

(2) 通配符“?”+SEARCH函数

在单元格内输入:=search(“?”,字符串所在单元格)

解析:

search函数中的“?”表示查找字符串中任意一个字符,所以最终返回结果为1。

了解了以上内容,就开始利用search函数来提取汉字中的数字吧:

1、 利用searchb函数找到任意一个字节(本例中指数字)出现的起始字节位置:

在单元格内输入:=searchb(“?”,字符串所在单元格)

Enter回车后,自动向下填充。

解析:

根据一个汉字占两个字节,一个数字占一个字节最终返回结果为:9、7、5、1

2、 用MIDB函数从第一个数字的字节位置开始提取。

在单元格内输入:

=midb(字符串所在单元格, searchb(“?”,字符串所在单元格),row($1:$6))

然后Ctrl+Shift+Enter三键结束,再向下自动填充。

解析:

从数字首位字节处开始提取,然后观察得知最多的位数为6位数,因而提取的位数是从1—6,用row($1:$6)表示,“$”是绝对引用,为了向下填充时提取位数仍然是1—6保持不变。最终返回是字符串从首位数字的字节开始提取,然后分别提取1—6个字节所返回的数组。

3、 将提取后的文本型数字转化为数字型数字。

将前文函数后面“*1”

解析:

将含多余字节的提取结果变为错误值。

4、 在外嵌套iferror函数,将错误值变为0。

在单元格内输入:

=iferror(midb(字符串所在单元格, searchb(“?”,字符串所在单元格),row($1:$6))*1,0)

5、 在外嵌套max函数,提取出最大值即为字符串中的数字。

在单元格内输入:

=max(iferror(midb(字符串所在单元格, searchb(“?”,字符串所在单元格),row($1:$6))*1,0))

以上内容由优质教程资源合作伙伴 “鲸鱼办公” 整理编辑,如果对您有帮助欢迎转发分享!

你可能对这些文章感兴趣:

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注