Excel技巧:用字符串单独提取名字中的“名”与“姓”
今天Striver碰到一个很现实的问题,就是在Excel中把一列中文名字里的“姓”与“名”分别填充到两列表格里面。
如下图:
| A | B | C | |
| 1 | 姓名 | 姓 | 名 |
| 2 | 张三 | ||
| 3 | 李四 | ||
| 4 | 王麻子 |
当然,很多人会说,直接把名与姓分开复制、粘贴就OK了。当然,这肯定是可以的。但是,如果这一列名字非常多,你复制粘贴到手软件怎么办?有没有更快捷更省力的方法?看看Striver是怎么解决的吧。
原理
利用Excel里面的字符串函数,提取出名字中的“姓”与“名”。
涉及的函数
LEFT函数:
LEFT(text,num_chars)
Text是包含要提取字符的文本串。Num_chars指定要由LEFT 所提取的字符个数。该函数从左边开始提取字符。
RIGHT函数:
RIGHT(text,num_chars)
Text是包含要提取字符的文本串。Num_chars指定希望 RIGHT 提取的字符个数。该函数从右边开始提取字符。
LEN函数:
LEN(text)
Text是要查找其长度的文本。空格将作为字符进行计数。该函数统计文本字符串中的字符数。
IF函数
IF(logical_test,value_if_true,value_if_false)
Logical_test 表示计算结果为 TRUE 或 FALSE 的任意值或表达式。根据对指定的条件计算结果为 TRUE 或 FALSE,返回不同的结果。
实际操作:
首先是“姓”,Striver使用LEFT函数提取名字中的第一个字就可实现。具体做法是在B2(橙色)输入:=LEFT(A2,1),再按ENTER,则B2显示“张”。然后利用Excel的自动填充功能实现该列其它名字的“姓”的自动填充。
其次是“名”:Striver先使用LEN函数计算名字的字符个数,然后用IF函数判定字符个数是2还是大于2,最后用RIGHT函数提取名字中右边的1个或者2个字。如果字符个数为2即名字是2个字,则提取右边的一个字为“名”,如果字符个数为2个以上,即名字有3个字或4个字,则提取右边的两个字为“名”。具体做法是在在C2输入:=IF(LEN(A2)=2,RIGHT(A2,1),RIGHT(A2,2))。完了后,我们同样利用自动填充功能,实现该列其它名字的“名”的自动填充。
如果你觉得上面的文字说得不够清楚的话,你也可以看这里的更加直观实际操作视频。
注意事项:
不知道大家看了以上的操作之后有没发现一个问题,那就是复姓的问题。比如有如下的名字:慕容复、欧阳继修那么以上的方法恐怕就有点不适应了。首先,“姓”这一栏就应该从名字里提取左边的2个字符,而不是上面说的1个。其次,“名”这一栏,如果名字共有4个字,则从名字右边提取2个字符;如果名字共有3个字,则从名字右边提取1个字符而不是上面说的2个。但是,一般复姓还是非常少的,我们利用以上的便捷方式实现自动填充好的之后,再手工把那些复姓的修改过来就OK啦,相信工作量不会很大的。———————————————————————————————————————
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5中国大陆许可协议进行许可。
原创文章,转载请注明:转载自Idealand
本文链接地址:Excel技巧:用字符串单独提取名字中的“名”与“姓”
———————————————————————————————————————
相关日志
您可以RSS 2.0订阅。 留言,或者引用 Trackback。
