这个是一个网友问的问题。有一列文本,是费用项目的摘要,每个摘要里既有部门又有某某月费用字样,中间呢还夹杂着员工的姓名,姓名出现的位置不固定。现在呢,想把每个摘要里的姓名提取出来。
分析:
因为姓名出现的问题不固定,所以用普通的文本截取函数诸如left、mid、right等都不太好使。这里面,我想到一个思路,反其道而行之,如果我有一列公司的所有员工姓名列表,解决这个姓名提取问题就容易一些。
解答: 假设费用项目摘要列在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修炼营》 |
|