问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何应用Excel函数把汉字换成拼音首字母

发布网友 发布时间:2022-04-20 11:05

我来回答

3个回答

热心网友 时间:2022-04-11 18:49

  根据GB2312-1980 信息交换用汉字编码字符集 汉字分为一级汉字(3755个)和二级汉字(3008)个,一级汉字使用拼音排序,二级汉字使用笔画排序。因此对于一级汉字比较好办,找到每个拼音开始和结束的汉字内码即可。

  对于二级汉字还没有好的办法,不过一级汉字3755个基本上已经够用了。目前网上的方法都是针对一级汉字的。

  以下使用VBA制作一个自定义函数:getpy在表格中直接使用这个函数即可。

Function getpychar(char)
tmp = 65536 + Asc(char)
If (tmp >= 45217 And tmp <= 45252) Then
    getpychar = "A"
ElseIf (tmp >= 45253 And tmp <= 45760) Then
    getpychar = "B"
ElseIf (tmp >= 45761 And tmp <= 46317) Then
    getpychar = "C"
ElseIf (tmp >= 46318 And tmp <= 46825) Then
    getpychar = "D"
ElseIf (tmp >= 46826 And tmp <= 47009) Then
    getpychar = "E"
ElseIf (tmp >= 47010 And tmp <= 47296) Then
    getpychar = "F"
ElseIf (tmp >= 47297 And tmp <= 47613) Then
    getpychar = "G"
ElseIf (tmp >= 47614 And tmp <= 48118) Then
    getpychar = "H"
ElseIf (tmp >= 48119 And tmp <= 49061) Then
    getpychar = "J"
ElseIf (tmp >= 49062 And tmp <= 49323) Then
    getpychar = "K"
ElseIf (tmp >= 49324 And tmp <= 49895) Then
    getpychar = "L"
ElseIf (tmp >= 49896 And tmp <= 50370) Then
    getpychar = "M"
ElseIf (tmp >= 50371 And tmp <= 50613) Then
    getpychar = "N"
ElseIf (tmp >= 50614 And tmp <= 50621) Then
    getpychar = "O"
ElseIf (tmp >= 50622 And tmp <= 50905) Then
    getpychar = "P"
ElseIf (tmp >= 50906 And tmp <= 51386) Then
    getpychar = "Q"
ElseIf (tmp >= 51387 And tmp <= 51445) Then
    getpychar = "R"
ElseIf (tmp >= 51446 And tmp <= 52217) Then
    getpychar = "S"
ElseIf (tmp >= 52218 And tmp <= 52697) Then
    getpychar = "T"
ElseIf (tmp >= 52698 And tmp <= 52979) Then
    getpychar = "W"
ElseIf (tmp >= 52980 And tmp <= 53640) Then
    getpychar = "X"
ElseIf (tmp >= 53689 And tmp <= 54480) Then
    getpychar = "Y"
ElseIf (tmp >= 54481 And tmp <= 62289) Then
    getpychar = "Z"
Else '如果不是中文,则不处理
    getpychar = char
End If
End Function

Function getpy(str)
For i = 1 To Len(str)
    getpy = getpy & getpychar(Mid(str, i, 1))
Next i
End Function

  应用举例:在单元格中输入公式=getpy(单元格名)即可,如下图所示,函数的局限性也在图中进行了演示。

热心网友 时间:2022-04-11 20:07

如A1-A50输入的是汉字。则在B1中的公式为:=LOOKUP(CODE(A1),45217+{0,36,544,1101,1609,1793,2080,2560,2902,3845,4107,4679,5154,5397,5405,5689,6170,6229,7001,7481,7763,8472,9264},{"A","B","C","D","E","F","G","H","J","K","L","M","N","O","P","Q","R","S","T","W","X","Y","Z"})
B2-B50填充。

热心网友 时间:2022-04-11 21:41

VBA

http://zhidao.baidu.com/q?word=%BA%BA%D7%D6%BB%BB%B3%C9%C6%B4%D2%F4%CA%D7%D7%D6%C4%B8excel&lm=0&fr=search&ct=17&pn=0&tn=ikaslist&rn=10
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么我每过一段时间就有“鬼压床”?求解决方法! 低保户可以买产权房吗 民政审批低保户的条件有那些低保户年审会将名,下有小产权房作为审核条件... 什么情况下西班牙语的字母上要加一个上升或下降的符号? 除了这些有没有别的情况也用连字符: 书写法语时,连字符“-”是不能... 的必须是什么意思吗? 杭州43路公交车在那换乘599路公交车 杭州43路公交车到德胜西路站么 杭州德胜路到文二路坐车要多久 你好十月唯美句子 你好十月唯美的句子有哪些 excel的getpy函数用不了是什么原因? 在EXCEL中如何取汉字拼音首字母? excel中如何实现提取汉字的拼音首字母? excel中的个getpy函数,输入那些代码的作用是啥 wps getpy函数用不了 有谁知道Excel中提取拼音的首字母的方法? EXCEL 如何取汉字首拼(包括多音字首拼) excel能不能提取文字首字母 成都给米金融服务外包有限公司怎么样? 成华区网站建设公司,外包的 成都舜津科技有限公司怎么样? 成都誉和金融服务外包有限公司怎么样? 成都的对日外包公司有哪些啊? 请问成都哪个公司接3D游戏模型外包做的比较好的,... 成都有哪些较大的java人力外包公司 成都延藤网络科技有限公司怎么样? 成都有哪些外包呼叫中心。我想找家呼叫中心,把公... 成都软件外包公司怎么选择 成都企包在线是做网络营销外包的吗?找他们做营销... 成都网站建设外包公司排名,哪家好 excel函数问题,vlookup只能查找第一个,后面的怎... 打印机连接电脑打印老是显示打印错误怎么回事? 打印机打印队列中文档状态显示错误而不能打印怎么办? 电脑打印机打印状态显示错误是什么意思? 打印机打着打着突然不能打印,状态显示错误是怎么... 打印机不能打印,显示“错误,正在打印”,有哪些原因 打印机状态显示错误是怎么回事 打印机上显示错误状态不能打印怎么办 为什么打印机打印时电脑上显示出错 打印机状态:错误,正在打印?打印测试页出下面图... 电脑显示打印机错误正在打印怎么处理 电脑打印机显示错误是怎么回事 电脑连着打印机显示错误没法正常打印 打印机无法打印,显示打印错误,可以复印 打印机打印显示错误不能打印怎么办 怎样换手机号码? vivox23为啥抖音直播间不能涂鸦? 怎么更改手机号码? vivox23为什么不能在抖音下动态壁纸?? vivoX23可以手势刷抖音吗