Excel查找字符最后出现的位置并返回之后的字符串公式

做一些解释

 代码如下 复制代码

LEN(A2) – LEN(SUBSTITUTE(A2, ” “, “”) 获取字符串中空格的个数
SUBSTITUTE(A2, ” “, “-”, step1) 将最后一个空格替换为”-”
FIND(“-”, step2) 找到最后一个空格的位置
RIGHT(A2, LEN(A2) – step3) 返回最后一个空格之后的字符串
IF(ISERROR(FIND(” “, A2)), A2, step4) 字符串中没有空格时不做处理,避免出现#VALUE!的结果

利用上面的函数我们来看一个查找字符串中*星号位置并取出

所以,要想查找字符串中的,*星号和?问号,必须在其前面加上这样的一个符号 ~ 方能找到。

上表中,每个单元格都包含两个*星号,同时还包含三组数字,但是,每组数字的长度都不一样,有的长有的短。现在的问题是,如何把每个单元格中被*星号隔开的每数字分别取出来?

一、问题的分析

  要想取出被两个*星号隔开的三组数字,关键的问题在于,如何知道并获取两个*星号分别处于字符串中的哪个位置。
  知道两个*星号的位置后,我们就可以使用截取函数将三组数字分别取出来。

二、获取两个*星号的位置
  获取某个字符在字符串中所处的位置,可以使用SEARCH和SEARCHB函数来查找位置。
  两个函数的语法相同,如下:
  SEARCH(find_text,within_text,start_num)
  SEARCHB(find_text,within_text,start_num)
  不过,两个函数的区别在于,前者在查找的时候,把一个汉字的长度当作一个字符,后者则是以字节的方式来查找,一个汉字当两个字节,所以,一个汉字的长度就为2。一般情况下,在中文英文数字特殊字符混合的字符串中查找,应该使用SEARCH函数。
  把以上两个函数翻译成中文,其语法为:
  SEARCH(要找的字符,包含字符的字符串,从串中的第几个位置开始找)
  SEARCHB(要找的字符,包含字符的字符串,从串中的第几个位置开始找)

有了如上的函数基础与理论指导,下面,我们开始查找两个星号的位置吧。

①第一个*星号的位置
通过函数=SEARCH("~*",A1)即可获取第一个星号的位置,处于第5位。

②第二个*星号的位置
  第二个*星号的位置查找,就比较困难了,公式有点绕口令的感觉。
  总之,公式如下:=

 代码如下 复制代码
SEARCH("~*",A1,SEARCH("~*",A1)+1)

看到了吧?上述的公式比较复杂,但是,却也很好理解。
通过公式=SEARCH("~*",A1)可获得第一个位置,那么,再第一个位置的基础上加1,从这个位置开始继续往下找,就可以找到第二星号的位置,所以,公式就是上图中稍微绕口的函数了。

三、从带有星号的字符串中提取数字
  有了一二的基础,现在,我们该是提取数字了。
①提前第一个星左边的数字公式

 代码如下 复制代码
  =LEFT(A1,SEARCHB("~*",A1)-1)

②提取中间那个数字的公式

 代码如下 复制代码
  =MID(A1,SEARCHB("~*",A1)+1,(SEARCHB("~*",A1,SEARCHB("~*",A1)+1))-SEARCHB("~*",A1)-1)
时间: 2024-10-26 16:47:01

Excel查找字符最后出现的位置并返回之后的字符串公式的相关文章

Shell脚本实现查找字符串中某字符最后出现的位置_linux shell

需要对字符串查找其中某个字符最后出现的位置,这个在PHP (strrpos)或者Perl (rindex)里面都有现成函数可用的功能,在Shell里面居然一时想不出个道道来.在论坛上发贴也没人解答(不知道是问题太简单还是真的很高深...). 因为事情紧急等不得,于是求救大学同学.Pacman不愧是个中高手,三两下点醒梦中人: rindex.sh代码: 复制代码 代码如下: #!/bin/bash strToCheck=$1; charToSearch=$2; let pos=`echo "$st

C语言中查找字符在字符串中出现的位置的方法_C 语言

C语言strchr()函数:查找某字符在字符串中首次出现的位置 头文件:#include <string.h> strchr() 用来查找某字符在字符串中首次出现的位置,其原型为: char * strchr (const char *str, int c); [参数]str 为要查找的字符串,c 为要查找的字符. strchr() 将会找出 str 字符串中第一次出现的字符 c 的地址,然后将该地址返回. 注意:字符串 str 的结束标志 NUL 也会被纳入检索范围,所以 str 的组后一个

php中查找字符吕函数之strstr,strpos,substr,strrchr介绍

一.strstr - 查找字符串的首次出现 string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] ) 注1:$haystack是当事字符串,$needle是被查找的字符串.该函数区分大小写. 注2:返回值是从needle开始到最后. 注3:关于$needle,如果不是字符串,被当作整形来作为字符的序号来使用. 注4:before_needle若为true,则返回前东西.  代码如下 复制

C++查找字符在字符串中出现的次数

查找字符在字符串中出现的次数: int count1(char* str,char* s) { char* s1; char* s2; int count = 0; while(*str!='\0') { s1 = str; s2 = s; while(*s2 == *s1&&(*s2!='\0')&&(*s1! ='0')) { s2++; s1++; } if(*s2 == '\0') count++; str++; } return count; }

EXCEL查找并返回最后一个相同值

在EXCEL中,我们常常使用vlookup函数查找相同的数据,可以跨工作表查找,同时还能跨工作并查找,非常方便! 仍然,问题出在vlookup函数只能查找相同值的第一个值.如果我们要想查找相同值的最后一个值,就不能使用该函数了,得使用如下方法,请认真阅读,或许对您有帮助. 下面,我们使用的函数是LOOKUP函数. 先看下表吧. 如下图,在Sheet2中,我们存放两列数据,A列为操作员的编号,B列为操作员的操作日期. 现在,我们来分析问题,每个操作员,都是按照时间顺序来进行记录的,同时,每个操作员

ASP.NET从字符串中查找字符出现次数的具体实现方法_实用技巧

首先想到的方法当然是从头遍历字符串并统计: 复制代码 代码如下: c1=0;for(inti=0;i {if(str[i]=='A'){c1++;}} 第二种方法也很容易想到,将字符串中所有要查找的字符去除,然后比较去除前后的字符串长度即可.这种方法遭到了某人的鄙视,据说性能很差而且多占空间. 复制代码 代码如下: c2=str.Length-str.Replace("A",String.Empty).Length; 接下来某人又提出了第三种方法,是用要查找的字符为分隔符,将原字符串分

replace()方法查找字符使用示例_javascript技巧

通常用于文本输入框的一种功能是替换指定的字符.JavaScript具有一个非常有用的方法replace(),可以时候用它利用备选字符集途欢指定的字符. replace()方法允许指定希望替换的字符或字符集,方式是利用字符串或者正则表达式:这是该方法的第一个实参.第二个实参是谢昂替换为的字符.第二个实参通常只是一个替换字符串(替换字符集),但他可以是用于确定替换字符串应当是什么的函数--如果是函数,则返回值应当用做俄日替换字符串.隐藏replace()方法的语法可以是如下任意一种: 复制代码 代码

使用NPOI从Excel中提取图片及图片位置信息

原文:使用NPOI从Excel中提取图片及图片位置信息 问题背景: 话说,在ExcelReport的开发过程中,有一个比较棘手的问题:怎么复制图片呢? 当然,解决这个问题的第一步是:能使用NPOI提取到图片及图片的位置信息.到这里,一切想法都很顺利.但NPOI到底怎么提取图片及图片的位置信息呢?NPOI能不能提取到图片的位置信息呢? 这是两个问题.是两个让BaiGoogleDu几近沉默的问题.但官方教程的评论中还是流露出了答案的蛛丝马迹. 哇咔咔,这是我去看源码寻答案的的动力. 此处省去(N多字

查找目录下的所有文件中是否含有某个字符串 linux

查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xargs grep -ri "IBM" -l 1.正则表达式    (1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/.*.?等)组成.   (2)基本元字符集及其含义       ^ :只匹配行首.   如^a 匹配以a开头的行abc,