为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

excel提取汉字的拼音首字母集锦

2012-06-24 5页 doc 72KB 142阅读

用户头像

is_777794

暂无简介

举报
excel提取汉字的拼音首字母集锦excel提取汉字的拼音首字母集锦 方法一:(最完美的方法) 如果你A列的汉字都在4个字符之内,那就在B列输入此公式: =LOOKUP(MID(A1,1,1),{"","";"吖","A";"八","B";"嚓","C";"咑","D";"鵽","E";"发","F";"猤","G";"铪","H";"夻","J";"咔","K";"垃","L";"嘸","M";"旀","N";"噢","O";"妑","P";"七","Q";"囕","R";"仨","S";"他","T";"屲","W";"夕","X";"丫","Y";...
excel提取汉字的拼音首字母集锦
excel提取汉字的拼音首字母集锦 方法一:(最完美的方法) 如果你A列的汉字都在4个字符之内,那就在B列输入此公式: =LOOKUP(MID(A1,1,1),{"","";"吖","A";"八","B";"嚓","C";"咑","D";"鵽","E";"发","F";"猤","G";"铪","H";"夻","J";"咔","K";"垃","L";"嘸","M";"旀","N";"噢","O";"妑","P";"七","Q";"囕","R";"仨","S";"他","T";"屲","W";"夕","X";"丫","Y";"帀","Z"})&LOOKUP(MID(A1,2,1),{"","";"吖","A";"八","B";"嚓","C";"咑","D";"鵽","E";"发","F";"猤","G";"铪","H";"夻","J";"咔","K";"垃","L";"嘸","M";"旀","N";"噢","O";"妑","P";"七","Q";"囕","R";"仨","S";"他","T";"屲","W";"夕","X";"丫","Y";"帀","Z"})&LOOKUP(MID(A1,3,1),{"","";"吖","A";"八","B";"嚓","C";"咑","D";"鵽","E";"发","F";"猤","G";"铪","H";"夻","J";"咔","K";"垃","L";"嘸","M";"旀","N";"噢","O";"妑","P";"七","Q";"囕","R";"仨","S";"他","T";"屲","W";"夕","X";"丫","Y";"帀","Z"})&LOOKUP(MID(A1,4,1),{"","";"吖","A";"八","B";"嚓","C";"咑","D";"鵽","E";"发","F";"猤","G";"铪","H";"夻","J";"咔","K";"垃","L";"嘸","M";"旀","N";"噢","O";"妑","P";"七","Q";"囕","R";"仨","S";"他","T";"屲","W";"夕","X";"丫","Y";"帀","Z"}) 公式是长了一点,如果把{}里的数据定义为名称,可以转换更多的首字母 具体方法: 复制{}里的数据,插入-名称(或者按CTRL+F3),定义名称,如图,定义“拼音”为名称,下面的“引用位置”的“=”号后面粘贴刚才复制的{}里的数据 确定。这样就可以把上面公式里{}部份替换为定义好的名称“拼音”了 如: =LOOKUP(MID(A1,1,1),拼音)&LOOKUP(MID(A1,2,1),拼音)&LOOKUP(MID(A1,3,1),拼音)&LOOKUP(MID(A1,4,1),拼音)&LOOKUP(MID(A1,5,1),拼音) 此公式是用MID截取源数据的第n个字符转换为字母:LOOKUP(MID(B1,1,1),拼音) 字符多的话,用&符号连接公式,并且把MID公式里的第二个参数(上面公式为粗体字)修改为对应的字符位置就可以了。 方法二:VBA自定义函数"=hztopy()" 下面是一个VBA自定义函数,工具->宏->Visual Basic编辑器->,插入模块,在VBA编辑器里面->插入->模块->贴入下述代码,那么,比如在A3中有"进退两难",则在B3中输入"=hztopy(A3)",则会得到"JTLN"。 不过此法有时候也会出错,比如"皓、鑫、婷、雯、奕"等,就无法提取汉字拼音首字母。 " Function hztopy(hzpy As String) As String Dim hzstring As String, pystring As String Dim hzpysum As Integer, hzi As Integer, hzpyhex As Integer hzstring = Trim(hzpy) hzpysum = Len(Trim(hzstring)) pystring = "" For hzi = 1 To hzpysum hzpyhex = "&H" + Hex(Asc(Mid(hzstring, hzi, 1))) Select Case hzpyhex Case &HB0A1 To &HB0C4: pystring = pystring + "A" Case &HB0C5 To &HB2C0: pystring = pystring + "B" Case &HB2C1 To &HB4ED: pystring = pystring + "C" Case &HB4EE To &HB6E9: pystring = pystring + "D" Case &HB6EA To &HB7A1: pystring = pystring + "E" Case &HB7A2 To &HB8C0: pystring = pystring + "F" Case &HB8C1 To &HB9FD: pystring = pystring + "G" Case &HB9FE To &HBBF6: pystring = pystring + "H" Case &HBBF7 To &HBFA5: pystring = pystring + "J" Case &HBFA6 To &HC0AB: pystring = pystring + "K" Case &HC0AC To &HC2E7: pystring = pystring + "L" Case &HC2E8 To &HC4C2: pystring = pystring + "M" Case &HC4C3 To &HC5B5: pystring = pystring + "N" Case &HC5B6 To &HC5BD: pystring = pystring + "O" Case &HC5BE To &HC6D9: pystring = pystring + "P" Case &HC6DA To &HC8BA: pystring = pystring + "Q" Case &HC8BB To &HC8F5: pystring = pystring + "R" Case &HC8F6 To &HCBF9: pystring = pystring + "S" Case &HCBFA To &HCDD9: pystring = pystring + "T" Case &HEDC5: pystring = pystring + "T" Case &HCDDA To &HCEF3: pystring = pystring + "W" Case &HCEF4 To &HD1B8: pystring = pystring + "X" Case &HD1B9 To &HD4D0: pystring = pystring + "Y" Case &HD4D1 To &HD7F9: pystring = pystring + "Z" Case Else pystring = pystring + Mid(hzstring, hzi, 1) End Select Next hztopy = pystring End Function 方法三:VBA自定义函数"=getpy()" 下面是一个VBA自定义函数,工具->宏->Visual Basic编辑器->,插入模块,在VBA编辑器里面->插入->模块->贴入上述代码,那么。 那么,比如在A2中有"进退两难",则在B2中输入"=getpy(A2)",则会得到"JTLN"。 不过此法有时候也会出错,比如"鑫、雯、奕"等,就无法提取汉字拼音首字母,还有些字如"皓、婷"等被错提取为“Z”。 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 方法四:Excel函数LOOKUP 这个函数在Excel里面最多只能设置自动提取字段的前四个字的拼音首字母,多了会提示公式太长。 比如在A2中有"进退两难",则在B2中输入如下函数"=LOOKUP()",则会得到"JTLN"。 提取前四个字首字母时的函数 =LOOKUP(CODE(A2),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"})&LOOKUP(CODE(MID(A2,2,1)),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"})&LOOKUP(CODE(MID(A2,3,1)),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"})&LOOKUP(CODE(MID(A2,4,1)),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"}) 提取前二个字首字母时的函数 =LOOKUP(CODE(A2),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"})&LOOKUP(CODE(MID(A2,2,1)),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"}) 想提取前一个字、前三个字首字母应该怎么办你自己想想吧 不过此法也存在方法三的问题。 以上来自网上
/
本文档为【excel提取汉字的拼音首字母集锦】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索