最近推送的几篇文章:
· 正 · 文 · 来 · 啦 ·
小龙正在埋头审核票据,这时,财务经理从办公室走出来,走到小龙的工位,拍了拍小龙:“审核得很仔细嘛”。
将小龙吓了一跳,慌忙放下手里的票据,“谢谢领导夸奖,领导,有何吩咐?”
“这样,你抽空将公司所有员工的姓名,提取出拼音的缩写,一千多号员工,可能要费点时间,你要研究。。。。”小龙听了头都大了,赶紧说“领导,你知道的,我是从大山里走出来的,我的普通话发音和英语口语一样的标准,我怕将拼音弄错了,有没有其他搬砖的活。。。。”
领导语重心长、高屋建瓴地批评小龙,“小龙啊,我们做事要扬长避短,更要注意做事的方法,你普通话不好,可以用电脑啊,电脑普通话是标准的,一千多号人,你手工做得多久啊,要研究有没有好的方法,你看看Excel有没有函数公式可以,空了你研究一下,你可以搞定的,我相信!”小龙望着领导远去的背影,小声说道“宝宝心里苦,但宝宝不说”。
下面是小龙的研究过程
一千多号人,手工做,得累死。小龙心想,既然Excel不但数字可以排序,汉字也能排序,那他一定有大小关系。于是,它在Excel里输入“偷懒是人类进步的原动力”。那如何拆分排序呢?这难不到小龙,小龙看过Excel偷懒的技术公众号写的文章,介绍如何用两端对齐拆分汉字。可以看出除了第一行“偷”字,被当做标题没有参与排序,其他的都是按拼音首字母顺序排序。另外,VLOOKUP第四参数为1,使用近似查找模式时,它会返回比它小的最大值,比如:
那汉字查找是否也是一样呢?小龙经过测试,发现也是可以的,关键是要找到每个拼音排在最前面的汉字。这个难不到小龙,通过百度,可搜到下面的列表。
问题来了,那如何将一个姓名分拆为一个个字符来查找呢?
小龙知道可用MID函数来提取字符,那可否逐个分拆呢?小龙记得龙逸凡在Excel偷懒的技术公众号介绍过常量数字组的用法小龙举一反三,套用到MID函数中,用它来逐个提取字符=VLOOKUP(MID(K2,{1,2,3,4,5},1),$B$3:$C$26,2,1)上面的公式在OFFICE 2019中会将查找到的结果自动向右溢出,填列到右边的单元格。小龙的实际需求是在一个单元格列出来。
这个难不到小龙,小龙在最外层套用一个新函数TEXTJOIN即可=TEXTJOIN(,,VLOOKUP(MID(K2,{1,2,3,4,5},1),$B$3:$C$26,2,1))小龙松了一口气,然后将公式下拉填充,发现会出现错误:
经分析,这是因为MID函数在截取超过字数时字符时,结果为空,VLOOKUP在列表中查找空值会找不到,返回#N/A。所以得在VLOOKUP外面加一个容错机制,套一个IFNA函数处理错误值,当结果为#N/A时,返回空值。
=TEXTJOIN(,,IFNA(VLOOKUP(MID(K2,{1,2,3,4,5},1),$B$3:$C$26,2,1),""))当然,如果对函数比较熟练的话,也可用ROW+LEN+INDIRECT函数根据字符长度来提取相应的字符,这个比较烧脑,就不详细讲解了:=TEXTJOIN(,,VLOOKUP(MID(E3,ROW(INDIRECT("1:"&LEN(E3))),1),$B$3:$C$26,2,1))如果要转换成小写字母,可在外围穿一件LOWER牌外套即可。=LOWER(TEXTJOIN(,,VLOOKUP(MID(E3,ROW(INDIRECT("1:"&LEN(E3))),1),$B$3:$C$26,2,1)))《“偷懒”的技术2:财务Excel表格轻松做》
《偷懒2》不是《偷懒1》的改版,两者内容是完全不同的,《偷懒2》主要介绍灵活如何用函数公式、功能技巧专业地设计表格。并将日常工作常用的公式设计成模型公式,要用的时候,直接比照套用就是了。《“偷懒”的技术:打造财务Excel达人》
2017年当当网畅销榜Excel类第一名,办公类第二名,好评率99.8%,学Excel必选书籍!
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。