分享

把某列文本里藏匿的姓名提取出来,这一招重现江湖噼里啪啦无与伦比的美丽

 董董_V 2017-08-11

这个是一个网友问的问题。有一列文本,是费用项目的摘要,每个摘要里既有部门又有某某月费用字样,中间呢还夹杂着员工的姓名,姓名出现的位置不固定。现在呢,想把每个摘要里的姓名提取出来。


 

分析:

 

因为姓名出现的问题不固定,所以用普通的文本截取函数诸如left、mid、right等都不太好使。这里面,我想到一个思路,反其道而行之,如果我有一列公司的所有员工姓名列表,解决这个姓名提取问题就容易一些。

 

费用项目摘要提取姓名

员工姓名
生产部李三03月费用 

李三
青一部-李玉凤05月费用 

李玉凤
生鲜部-赵四海07月费用 

赵四海
工程部--孙思茅11月费用 

于晓琳
物流部吴思武08月费用 

赵武林
财务李斯思07月费用 

李斯思
董碧虎销售部9月费用 

吴思武
赵武林市场部2月费用 

董碧虎
统计部-于晓琳6月加班费用 

孙思茅

 

 

 

解答:

 假设费用项目摘要列在A列,提取姓名列是B列,则B2单元格录入如下函数公式:

 

=LOOKUP(1,0/FIND($E$2:$E$10,A2),$E$2:$E$10)

 

其中,FIND($E$2:$E$10,A2),表示的是:看看员工姓名列表里的任一姓名有没有在A2单元格出现过。

你在公式里选中FIND($E$2:$E$10,A2),按F9快捷键,可以把这部分代表的结果值显示出来,结果值为:

{4;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}


 

这里面只有第一位是数字,其他都是错误值。显然就是姓名列表里的第一个员工姓名在A2单元格被发现了。

 

那么,0/FIND($E$2:$E$10,A2),就把结果值变为了:

{0;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}

 

再用LOOKUP(1,单列目标区域,单列返回值区域)这样的LOOKUP函数的语法结构来找。1呢,在目标区域肯定没有,lookup必须去找到0代表的那个位置,这个位置上对应的返回值区域的内容就是药找寻的姓名。

 

当然这个地方,你用以下几种写法都是对的,随你喜欢:

 

=LOOKUP(0,0/FIND($E$2:$E$10,A2),$E$2:$E$10)

 

=LOOKUP(,0/FIND($E$2:$E$10,A2),$E$2:$E$10)

 

=LOOKUP(9^9,FIND($E$2:$E$10,A2),$E$2:$E$10)

 

=LOOKUP(9E 307,FIND($E$2:$E$10,A2),$E$2:$E$10)

 

 

--------------------------------------------------------------------------------------------

学习更多Excel技能,一日千里,半年超越周边所有人,一年后薪水翻倍!


学这套在线视频课程,就足够了!


《Excel PPT Word小白蜕变高手Office修炼营》


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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多