有谁知道Excel中提取拼音的首字母的方法?

发布网友 发布时间:2022-04-23 07:51

我来回答

11个回答

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

在日常工作中,为了方便查询、排序或者编码,需要生成汉字内容信息的首字母,如果信息很多的话,一个个录入是一件很麻烦的事情。因此,关于在EXCEL中提取拼音的首字母的方法,具体的操作如下:

一、新建Excel文件

新建一个Excel文件,输入示例汉字内容。

二、设置【开发工具】菜单

【文件】->【选项】->【自定义功能区】->【主选项卡】->勾选【开发工具】

点击确定以后,导航菜单里增加一项【开发工具】

三、自定义函数

打开【开发工具】菜单,点击第一个【Visual Basic】,弹出代码窗口,

在窗口左侧空白处,点击右键,选择【插入】->【模块】。窗口右侧出现一个白色背景框。

复制粘贴如下内容到

点击菜单中【保存】,弹出一个提示框,点【是】,再次弹出一个提示框,点【确定】。

三、调用自定义函数

关闭代码窗口,回到Excel文件。鼠标定位到“拼音首字母”列第一行(C2单元格)。

在函数框中输入=getpy(B2),(调用自定义函数,获取B2单元格中汉字内容首字母)回车,可以看到获取到B2单元格中内容的首字母。

四、生成首字母

鼠标定位到单元格C2右下角,光标变成黑色十字,按住鼠标左键往下拉至C15行。获取全部内容的首字母。

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

可以利用LEFT函数实现。

假设表格如下,需要提取A列单元格拼音的首字母填写在相应B列单元格中。

步骤:在B1单元格输入公式“=LEFT(A1,1)”,回车,然后向下填充即可。

最终效果:

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

你好,根据你的描述,你的问题可以由宏代码实现,当然也可以由函数公式直接实现,不过我觉得用函数公式实现更为简单。假如姓名在a1单元格,姓名为蒋彦斌三个字的,在任意单元格输入以下公式,会得出JYB的结果。公式如下:

=LOOKUP(CODE(LEFT(A1,1)),45217+{0,36,544,1101,1609,1793,2080,2560,2902,3845,4107,4679,5154,5397,5405,56,6170,6229,7001,7481,7763,8472,92},{"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(RIGHT(A1,2)),45217+{0,36,544,1101,1609,1793,2080,2560,2902,3845,4107,4679,5154,5397,5405,56,6170,6229,7001,7481,7763,8472,92},{"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(RIGHT(A1,1)),45217+{0,36,544,1101,1609,1793,2080,2560,2902,3845,4107,4679,5154,5397,5405,56,6170,6229,7001,7481,7763,8472,92},{"A","B","C","D","E","F","G","H","J","K","L","M","N","O","P","Q","R","S","T","W","X","Y","Z"})

以上公式给你备用,难说你以后又要用,算是给你备用吧!

但是根据你的题目要求,你并不需要所有汉字的首字母,比如你的C1是“机械”,那么B1需要为“J”;C2是“玩具”,那么B2需要为“W”。看来你的你只要第一个汉字的首字母,其他的都不要。只要则删除上面公式中&后面的部分即可。具体公式是(把以下公式复制粘贴入B1单元格,用填充柄往下拖公式即可):

=LOOKUP(CODE(LEFT(C1,1)),45217+{0,36,544,1101,1609,1793,2080,2560,2902,3845,4107,4679,5154,5397,5405,56,6170,6229,7001,7481,7763,8472,92},{"A","B","C","D","E","F","G","H","J","K","L","M","N","O","P","Q","R","S","T","W","X","Y","Z"})

 

如下图:

真诚希望能够帮助到你!当然上面有人已经用邮件和百度HI帮你解决。我不知道他是不是用我一样的方法,但我觉得,邮件其他人看不到,能够解决问题的答案应该共享,这样百度网络才会更美好,大家也才需要网络!-----河阳小子!

热心网友 时间:2022-04-11 23:33

可以网上搜一下啊,很多的

Excel汉字转换得到其拼音函数
2008年12月10日 星期三 09:21

打开Excel->工具->宏->Viaual Basic编辑器
在弹出来的窗口中对着VBAproject点右键->插入->模块
下面会出现一个名为"模块1",点击
在右边的空白栏中粘贴以下内容:
''''''''''''''''''''''
'VBscript代码提供者:小白
'联系方法:
'E-mail:xiao@17560.net
'
'VBA代码转换者:惟惟
'联系方法:Email:wuweiyin@yeah.net
'个人博客:http://weiwei.blog.163.com
'如有不正确的地方,请提出来或是帮忙完善
'谢谢
''''''''''''''''''''''''''''''
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 <= 495) Then
getpychar = "L"
ElseIf (tmp >= 496 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 <= 530) Then
getpychar = "X"
ElseIf (tmp >= 536 And tmp <= 54480) Then
getpychar = "Y"
ElseIf (tmp >= 54481 And tmp <= 622) 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中使用,方法如下:
A1 A2
中国 =getpy(A1)

转自:http://hi.baidu.com/shanxilzl/blog/item/4372880247ec070a4bfb51ae.html

热心网友 时间:2022-04-12 01:41

1.要保证拼音前面没有空格 可以用函数 trim()取出
2.然后在B1中输入 =left(C1,1)
下拉即可

热心网友 时间:2022-04-12 04:05

参见:Excel汉字转拼音的完美解决方案~函数进化(地址见参考资料)
1、把其中的hztopy类和zhtopy函数导入到工作表,就可以使用hztopy函数,或者把数据复制过去直接在上面改

2、输入如下公式,向下填充
=left(hztopy(LEFT(c2,1)),1)

参考资料:http://dla.excelhome.net/2007-4/HztoPy_v02_070405.rar___20074512431512.rar

热心网友 时间:2022-04-12 06:47

C列的文字的第一个是否是字母?如果是则用B1=left(C1,1)即可;如果前面还有其他元素,则应先判断字母出现的位置再用B1=MID(C1,n,1)提取.
判断可以用宏
Sub MidFirstW()
Dim asci As Byte
Dim CC As String
Dim i, j As Integer
On Error Resume Next
For i = 1 To 99 '99是C列总行数,自行填入,也可以在任一格输入=CountA("C:C"),即总行数
CC = Range("C" & i)
For j = 1 To Len(CC)
asci = 0
asci = Asc(Mid(CC, j, 1))
If asci <> 0 Then
If (asci <= Asc("Z") And asci >= Asc("A")) Or (asci <= Asc("z") And asci >= Asc("a")) Then
Range("B" & i) = Mid(CC, j, 1)
Exit For
End If
End If
Next
Next
MsgBox "已经提取完毕!"
End Sub
写完才看到已经变了,可以参考下面http://club.excelhome.net/thread-229924-1-1.html

热心网友 时间:2022-04-12 09:45

能 看下表格吗?
提取数据一般用MID和LEFT函数!
最好能看到表格 !
chen.founder@163.com

热心网友 时间:2022-04-12 12:59

=MID(B2,1,1)下拉填充

热心网友 时间:2022-04-12 16:31

在B1输入:=LEFT(C1,1) 下拉填充

热心网友 时间:2022-04-12 20:19

各位好,我已经用邮件和百度HI帮他解决 了。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com