EXCEL表格,我有一份姓名表,如何才能快速转换成英文简写,姓的全字母+名的首字母?

2024-11-21 17:53:47
推荐回答(5个)
回答1:

参考资料取自百度经验,链接在下方,作者@鱼木混猪,希望对你们有帮助。

首先,打开Excel,同时按下Alt+F11键,打开VBE界面,如下图所示。在VBE界面中,单击图片中所示的左上角空白处,选择“插入“,”模块“。

此时,就插入了一个模块,后面的代码就要放到这个模块中,保证右侧空白区域是模块代码的编辑区(最保险的做法是双击模块),然后执行下一步操作。

将下面的代码全部复制粘贴到空白区域。

Function pinyin(p As String) As String

i = Asc(p)

Select Case i

Case -20319 To -20284: pinyin = "A"

Case -20283 To -19776: pinyin = "B"

Case -19775 To -19219: pinyin = "C"

Case -19218 To -18711: pinyin = "D"

Case -18710 To -18527: pinyin = "E"

Case -18526 To -18240: pinyin = "F"

Case -18239 To -17923: pinyin = "G"

Case -17922 To -17418: pinyin = "H"

Case -17417 To -16475: pinyin = "J"

Case -16474 To -16213: pinyin = "K"

Case -16212 To -15641: pinyin = "L"

Case -15640 To -15166: pinyin = "M"

Case -15165 To -14923: pinyin = "N"

Case -14922 To -14915: pinyin = "O"

Case -14914 To -14631: pinyin = "P"

Case -14630 To -14150: pinyin = "Q"

Case -14149 To -14091: pinyin = "R"

Case -14090 To -13319: pinyin = "S"

Case -13318 To -12839: pinyin = "T"

Case -12838 To -12557: pinyin = "W"

Case -12556 To -11848: pinyin = "X"

Case -11847 To -11056: pinyin = "Y"

Case -11055 To -2050: pinyin = "Z"

Case Else: pinyin = p

End Select

End Function

Function getpy(str)

For i = 1 To Len(str)

getpy = getpy & pinyin(Mid(str, i, 1))

Next i

End Function

然后关闭这个新界面,返回Excel,就可以像Excel自带的函数一样使用这个自定义的Getpy()函数了,它只有一个参数,参数可以直接指定单元格,也可以直接输入字符。

需要注意的是,Getpy函数,只返回汉字拼音的首字母,如果是其他的字母或者数据等非汉字文本,会返回原来的值,如下图所示:

好了,关于Excel中如何用函数实现提取汉字的首字母的经验就介绍到这里。如果有什么不明白的地方,可以联系作者。欢迎阅读作者的其他百度经验,提高Excel能力。

  • END

  • 注意事项

  • 这个自定义函数的原理是什么呢?其实很简单,就是通过判断汉字的ASCII码,来转换为指定的字母,然后再利用一个简单的单个汉字的提取,来实现对一串汉字提取首字母的功能。上面的函数是提取首字母大写,明白了这个道理,就可以很轻松地改为首字母小写了。

  • 如果经常要用到这个函数,可以将模块导入为加载项,然后加在到Excel中,这样就几乎相当于Excel自带的函数,随时可以使用了。关于加载项的设置,可以看一下我的另外一篇经验。

参考资料链接:网页链接

回答2:

您这20分不好拿啊,可以写出百家姓的拼音,然后根据汉字对号入座,还要用到自定义的获取汉字首字母的函数,思路是这样,做起来要时间了。

回答3:

看这个链接,百度经验
https://jingyan.baidu.com/article/7f41ecec0bca3e593c095c56.html

回答4:

您好,EXCLE自带没有这个功能,不过我可以免费帮您转换一下~

回答5:

看姓名是什么分开的了
首字符之类的可以用left截取