ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2792|回复: 13

[已解决] 请教老师:如何提取前三句话的第一个汉字?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-10-20 17:13 | 显示全部楼层 |阅读模式
本帖最后由 zainan0810 于 2019-10-20 18:33 编辑

请教老师:如何提取前三句话中,每句话的第一个汉字。并将这个汉字分别放在A、B、C列中。具体见上面例子。
注:1、被标点符号(,。、;)隔开的,就算一句话;2、不够三句话的,有几句就提几句;3、《》()%等,不能按汉字处理,如果这条不能实现,我可以对文字进行处理,使每句话的第一个字都是汉字。 提取前三句话的第一个汉字.rar (6.78 KB, 下载次数: 17)

TA的精华主题

TA的得分主题

发表于 2019-10-20 17:48 | 显示全部楼层
第三条还是先处理下吧。

数组公式
=IFERROR(MID($D1,SMALL(IF(MMULT(N(MID(","&$D1,ROW($1:$99),1)={",","。","、",";"}),ROW(1:4)^0),ROW($1:$99)),COLUMN(A1)),1),"")

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-10-20 17:50 | 显示全部楼层
本帖最后由 liyanghu 于 2019-10-20 17:52 编辑

罗哥威武,差符号还没有解决

TA的精华主题

TA的得分主题

发表于 2019-10-20 18:19 | 显示全部楼层
使用正则表达式小工具——【超级查找替换】解决。

先分析“每句话的第一个汉字”的特征,并用正则表达式表示出来:
1、它自身是汉字,并用捕获分组包含它,即:([一-龥])
2、它的前面是标点符号,。、;或开始位置,可能还有若干个非汉字:即(?:[,。、;]|^)[^一-龥]*
连接起来,即目标内容的正则表达式:
(?:[,。、;]|^)[^一-龥]*([一-龥])

把上述目标部分的表达式代入正则表达式万能公式:[\s\S]*?(eXp)|[\s\S]+(eXp)部分,得到最终表达式:

即查找内容:
[\s\S]*?(?:[,。、;]|^)[^一-龥]*([一-龥])|[\s\S]+
替换为:
$1

然后,把替换所得结果按固定宽度分列,完成!

演示如下:

前3句话每句的第1个汉字.gif

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-20 18:26 | 显示全部楼层
solextrade 发表于 2019-10-20 17:48
第三条还是先处理下吧。

数组公式

谢谢罗老师的雄才伟略

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-20 18:31 | 显示全部楼层
ggmmlol 发表于 2019-10-20 18:19
使用正则表达式小工具——【超级查找替换】解决。

先分析“每句话的第一个汉字”的特征,并用正则表达式 ...

谢谢Ezreal老师的热心指教!以前对正则表达式还真忽略了,看来它真的很有用。好,有空一定按老师的指点学学。

TA的精华主题

TA的得分主题

发表于 2019-10-20 22:16 | 显示全部楼层
power query 处理看看
1.png

提取前三句话的第一个汉字.rar

16 KB, 下载次数: 1

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-10-21 12:40 | 显示全部楼层
A1:C4{=MID($D1,SMALL(IF(ISNUMBER(MATCH(MID(","&$D1,COLUMN($A:$CY),1),$F:$F,))*ISNA(MATCH(MID($D1,COLUMN($A:$CY),1),$F:$F,)),COLUMN($A:$CY),999),COLUMN(A1)),1)
6192.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-22 22:26 | 显示全部楼层
libo5563 发表于 2019-10-20 22:16
power query 处理看看

谢谢ftjg的指点!您的方法,我还真不会。不过,我把它收藏了,日后一定能用得上。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-22 22:30 | 显示全部楼层
hcm19522 发表于 2019-10-21 12:40
A1:C4{=MID($D1,SMALL(IF(ISNUMBER(MATCH(MID(","&$D1,COLUMN($A:$CY),1),$F:$F,))*ISNA(MATCH(MID($D1,CO ...

hcm19522老师,您每次帮我,都会有出人意料的方法,真是大神级的!公式收藏了啊,但不给鲜花。因为,今天的用完了,下次上线时,一定补上啊,呵呵。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-3-29 18:08 , Processed in 0.059091 second(s), 17 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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