excel分列,如果用函数拆分拼音
答案:3 悬赏:30 手机版
解决时间 2021-01-11 03:23
- 提问者网友:活着好累
- 2021-01-10 20:39
excel分列,如果用函数拆分拼音
最佳答案
- 五星知识达人网友:躲不过心动
- 2021-01-10 21:38
你确定你的表二中罗列了所有的声母+韵母的话,用下边的公式
D2公式=left(c2,max(iferror(find(表二!a$2:a$100,c2,2),))-1)
E2公式=substitute(c2,d2,"")
手写的,如果不对可以追问,还有就是你的表1如果有“niua”(牛啊)类似这样的,会出错。要想规避所有错误,公式太长,就不写了。需要的话再答吧。
再问下,最后那句“我清华校友都解答不出来”是啥意思?我们这也有好多“清华”呢,什么“清华附小”,“清华教育”……追问还是不行啊,帮忙看看那里错了。
追答数组公式,三键结束,Ctrl+shift+enter追问如:foushe
当she和he在一起判断的时候,就会优先选he,能不能优先选择she不选择he,调那个参数才行。=LEFt(A2,MAX(IFERROR(FIND(表一!A$2:A$399,A2,1),))-1)
D2公式=left(c2,max(iferror(find(表二!a$2:a$100,c2,2),))-1)
E2公式=substitute(c2,d2,"")
手写的,如果不对可以追问,还有就是你的表1如果有“niua”(牛啊)类似这样的,会出错。要想规避所有错误,公式太长,就不写了。需要的话再答吧。
再问下,最后那句“我清华校友都解答不出来”是啥意思?我们这也有好多“清华”呢,什么“清华附小”,“清华教育”……追问还是不行啊,帮忙看看那里错了。
追答数组公式,三键结束,Ctrl+shift+enter追问如:foushe
当she和he在一起判断的时候,就会优先选he,能不能优先选择she不选择he,调那个参数才行。=LEFt(A2,MAX(IFERROR(FIND(表一!A$2:A$399,A2,1),))-1)
全部回答
- 1楼网友:孤独的牧羊人
- 2021-01-10 22:47
只有将声母表列出来。因为声母一般只有一个字母,所以每个取第一个字母,如果在声母区域里,就可以选出,其他都为韵母。追问一个是可以,但两个字组在一起的这个办法就不行追答两个的只有zh、ch、sh三个,所以可以当遇到z、c、s可以多判断一位。
因为韵母一般也就两位,所以判断第三位如果是不是声母区域且第四位不是“g”,那地四位肯定是声母。
因为韵母一般也就两位,所以判断第三位如果是不是声母区域且第四位不是“g”,那地四位肯定是声母。
- 2楼网友:千杯敬自由
- 2021-01-10 22:18
给你段代码,你放到一个模块里,再调用函数就好了。
Function 拆分拼音(str As String) As String
str = StrConv(str, 10)
Dim shuchustr As String, str1 As String, str2 As String
str1 = str
Do While str1 <> ""
If 找声母(str1) = "" And 找韵母(str1) = "" Then
shuchustr = shuchustr & Left(str1, 1) & ","
str1 = Right(str1, Len(str1) - 1)
Exit Function
End If
str2 = 找声母(str1)
shuchustr = shuchustr & str2
str1 = Right(str1, Len(str1) - Len(str2))
str2 = 找韵母(str1)
shuchustr = shuchustr & str2 & ","
str1 = Right(str1, Len(str1) - Len(str2))
Loop
拆分拼音 = Left(shuchustr, Len(shuchustr) - 1)
End Function
Public Function 找声母(str As Variant) As String '从开头找声母
If Left(str, 2) Like "[zcs][h]" Then
找声母 = Left(str, 2)
Exit Function
End If
If Left(str, 1) Like "[bpmfdtnlgkhjqxzcsywr]" Then
找声母 = Left(str, 1)
Exit Function
End If
找声母 = ""
End Function
Function 找韵母(str As String) As String '从开头找韵母
If Left(str, 3) Like "[aeio]ng" Then
找韵母 = Left(str, 3)
Exit Function
End If
If InStr(1, "ai 、ei、 ui 、ao、 ou、 iu 、ie 、ve、 er、 an 、en 、in、 un 、vn", Left(str, 2)) Then
找韵母 = Left(str, 2)
Exit Function
End If
If Left(str, 1) Like "[iu]" And 找韵母(Right(str, Len(str) - 1)) <> "" Then
找韵母 = Left(str, 1) & 找韵母(Right(str, Len(str) - 1))
Exit Function
End If
If Left(str, 1) Like "[aoeiuv]" Then
找韵母 = Left(str, 1)
Exit Function
End If
找韵母 = ""
End Function
追问兄弟,你回复的非常好,我不会用,能不能讲得详细一点。如何使用。追答
在EXECL中 ,按ALT+F11,插入---模块 复制下列代码 :
另外这一段替换一下:
Function 找韵母(str As String) As String '从开头找韵母
If Len(str) = 1 Then GoTo LL
If Left(str, 3) Like "[aeio]ng" Then
找韵母 = Left(str, 3)
Exit Function
End If
If InStr(1, "ai,ei,ui,ao,ou,iu,ie,ve,er,an,en,in,un,vn", Left(str, 2)) Then
找韵母 = Left(str, 2)
Exit Function
End If
LL:
If Left(str, 1) Like "[iu]" And 找韵母(Right(str, Len(str) - 1)) <> "" Then
找韵母 = Left(str, 1) & 找韵母(Right(str, Len(str) - 1))
Exit Function
End If
If Left(str, 1) Like "[aoeiuv]" Then
找韵母 = Left(str, 1)
Exit Function
End If
找韵母 = ""
End Function
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯