分享

excel2010.25-字符串提取的另外一些例子

 乐自垂帘 2012-06-02

excel2010.25-字符串提取的另外一些例子

(2010-12-20 22:42:45)
标签:

excel

字符串

it

分类: 学习心得

  提取字符串中的第一个词和最后一个词

这段主要是针对西方文字的,中文提取第一个字相当的简单了。提取第一个词要先确定第一个空格的位置然后就可以了,公式如下:=LEFT(A1,FIND(“”,A1)-1);如果A1只包含一个单词时,不存在空格,需要对上面公式进行一下错误处理:=IFERROR(LEFT(A1,FIND(“”,A1)-1),A1)2003版本以前用:=IF(ISERR(FIND(“”,A1)),A1,LEFT(A1,FIND(””,A1)-1))

提取最后一个单词要多一些处理步骤,因为FIND函数只能从左到右的查找,确定最后一个空格的位置就是目标。

=RIGHT(A1,LEN(A1)-FIND(“*”,SUBSTITUTE(A1,””,”*”,LEN(A1)-LEN(SUBSTITUTE(A1,“”,””))))),同理这个也是有问题,比如字符串中不包含空格(一个单词),处理方式相同:

=IFERROR(RIGHT(A1,LEN(A1)-FIND(“*”,SUBSTITUTE(A1,””,”*”,LEN(A1)-LEN(SUBSTITUTE(A1,“”,””))))),A1)2003以前版本:

=IF(ISERR(FIND(“”,A1)),A1, RIGHT(A1,LEN(A1)-FIND(“*”,SUBSTITUTE(A1,””,”*”,LEN(A1)-LEN(SUBSTITUTE(A1,“”,””))))))

顺便说一句,用提取文件名的公式也能实现这个功能哦。

  提取字符串中除了第一个单词外的其余部分

这个其实也应该放到上一部分中,因为公式都差不多:=RIGHT(A1,LEN(A1)-FIND(“”,A1,1)),同样的,容错处理的公式:=IFERROR(RIGHT(A1,LEN(A1)-FIND(“”,A1,1)),””)2003以前版本:

=IF(ISERR(FIND(“”,A1)),””, RIGHT(A1,LEN(A1)-FIND(“”,A1,1)))

  提取姓名中的名字、中间名和姓氏(英文)

这里的全名中不包括抬头,如果有抬头,下文有处理方法。

提取名字的公式,这个很简单:

=IFERROR(LEFT(A1,FIND(“”,A1)-1),A1)

提取中间名就比较复杂了,因为不是所有的姓名中都包含中间名,所有如果有则返回对应的中间名,如果没有就什么都不返回:

=IF(LEN(A1)-LEN(SUBSTITUTE(A1,””,””))>1,MID(A1,FIND(“”,A1)+1,FIND(“”,A1,FIND(“”,A1)+1)-(FIND(“”,A1)+1)),””)

最后是姓氏:

=IFERROR(RIGHT(A1,LEN(A1)-FIND(“*”,SUBSTITUTE(A1,””,”*”,LEN(A1)-LEN(SUBSTITUTE(A1,””,””))))),””)

下面是结果的图示

excel2010.25-字符串提取的另外一些例子

  移除名字中的抬头称呼(英文)

英文中的常用抬头包括Mr. Dr.Ms.Mrs.四种,去除该抬头的公式:

=IF(OR(LEFT(A1,2)={“Mr”,”Dr”,”Ms”}),RIGHT(A1,LEN(A1)-(FIND(“.”,A1)+1)),A1)

  计算单元格中单词的数目(英文)

计算单元格包含字符串中英文单词的数目首先要找出空格的数量,英文中单词数量比空格数量多一个,由此就可以算出单词的数目。公式如下: =LEN(TRIM(A1))-LEN(SUBSTITUTE(A1,””,””))+1,习惯性的说些特殊情况,如果A1单元格中的内容是空的,该公式会返回1,这是不能忽略的,公式需要修改一下:

=IF(LEN(A1)=0,0, LEN(TRIM(A1))-LEN(SUBSTITUTE(A1,””,””))+1)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多