Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2326|回复: 1

[已解决]提取汉字自定义函数

[复制链接]
发表于 2017-1-10 21:12 | 显示全部楼层 |阅读模式
提取汉字自定义函数
如何设计一个自定义函数,实现以下两个效果

1.从第一个汉字开始提取,遇到非汉字则在前一个汉字停止
2.如果最后一个汉字是牌字则把牌字去掉
[/table]

[table=241]
     神龙-富康1234  神龙
   北京现代BH1234北京  北京现代
   长安牌SC123334长安  长安


最佳答案
2017-1-10 21:32
=SUBSTITUTE(LEFT(A1,MATCH(1,LENB(MID(A1,ROW($1:$99),1)),)-1),"牌","")
数组公式
发表于 2017-1-10 21:28 | 显示全部楼层
回复

使用道具 举报

发表于 2017-1-10 21:32 | 显示全部楼层    本楼为最佳答案   
=SUBSTITUTE(LEFT(A1,MATCH(1,LENB(MID(A1,ROW($1:$99),1)),)-1),"牌","")
数组公式

评分

参与人数 2 +19 金币 +10 收起 理由
苏子龙 + 9 很给力
望帝春心 + 10 + 10 来学习

查看全部评分

回复

使用道具 举报

发表于 2017-1-10 21:36 | 显示全部楼层
  1. Function TQ(rng As Range)
  2. Dim str$, i%
  3. For i = 1 To Len(rng)
  4.     If Asc(Mid(rng, i, 1)) < 0 Then
  5.         str = str & Mid(rng, i, 1)
  6.     Else
  7.         Exit For
  8.     End If
  9. Next
  10. If Right(str, 1) = "牌" Then
  11.     str = Left(str, Len(str) - 1)
  12. End If
  13. TQ = str
  14. End Function
复制代码

评分

参与人数 2 +24 金币 +15 收起 理由
苏子龙 + 9 来学习
心正意诚身修 + 15 + 15 帝心*尊教我VBA

查看全部评分

回复

使用道具 举报

发表于 2017-1-11 10:43 | 显示全部楼层
=tq(A3,"[^-\w牌]+",1)非常好用的自定义TQ函数,参考网站http://club.excelhome.net/thread-1088768-1-1.html

裙子自定义正则函数tq.zip

13.02 KB, 下载次数: 117

评分

参与人数 1 +9 收起 理由
today0427 + 9 你和楼主迷之相似,感觉找到失散多年的兄弟.

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-29 13:02 , Processed in 0.470420 second(s), 16 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表