ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 如何提取括号里外的数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-6-29 23:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wangjguo44 发表于 2016-6-28 07:15
先把所有的英文左右圆括弧查找替换为中文的括弧(规范!)
C3
B3

老师,很勉强看懂,但如果叫我写,我却写不出来。

TA的精华主题

TA的得分主题

发表于 2018-7-9 16:26 | 显示全部楼层
使用我原创的“超级查找替换”加载宏,你只需要掌握 “查找替换”、“分列”、“定位” 等基础技巧,就可以轻松解决这个需要VBA或复杂公式才能解决的问题:

下图中,查找内容为:(.*?)[\((](.*)[\))](.*)
替换为:$1$3|$2

它的原理为:

把原数据的每一项看作由3部分 顺序组成:(1、成对括号左边的内容 )+[全角或半角的左括号]+(2 成对括号之间的内容) +[全角或半角的右括号]+ (3 成对括号右边的内容),
替换时,把第1、3部分先合并(即$1$3),加上一个分隔符“|”,再与第2部分$2合并,综合起来,即 $1$3|$2


超级替换7.gif

TA的精华主题

TA的得分主题

发表于 2018-7-9 20:56 | 显示全部楼层
ggmmlol 发表于 2018-7-9 16:26
使用我原创的“超级查找替换”加载宏,你只需要掌握 “查找替换”、“分列”、“定位” 等基础技巧,就可以 ...

表达式写不出来 :(.*?)[\((](.*)[\))](.*)
你的宏  也只是 一次性道具

TA的精华主题

TA的得分主题

发表于 2018-7-9 22:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
zopey 发表于 2018-7-9 20:56
表达式写不出来 :(.*?)[\((](.*)[\))](.*)
你的宏  也只是 一次性道具

有些不大明白你两句话的意思。
我认为,正则表达式的编写,也有一个熟能生巧的过程,当你掌握了一定的“套路”之后,就会发现编写正则表达式很简单,比用数组公式的思维方式更直接,而且你会逐渐喜欢用它。因为它非常类似于编写SQL语句,也是把自然语言转化为专用工具的格式化语言,可以说,它的入门是很容易的,而且达到初级水平之后,就足以应付大多数对文本数据做前期清洗、整理的工作。

而我做的加载宏,其核心就是正则表达式工具,它在对话框界面和使用习惯两个方面,都与内置的“查找替换”功能保持一致,而在功能上又有极大的扩展。它对EXCEL“处理文本数据的能力弱”这一短板有了很大的加强,所以,它不仅与内置的“查找替换”功能一样有通用性的特点,而且应用范围更加广泛。

此外,该加载宏,还是一个非常好的可以为的正则表达式测试工具,当编写VBA代码中需要用到复杂的正则表达式时,可以先用它对典型数据做直观地测试。

比如,我在 以下帖子的回复中,编写了两个复杂的表达式,就是通过它来对典型数据反复测试、改进,从而得到的:

pttn = "^.*?(公司|金库|银行)|银行卡?|股份制?|有[限银]|责任|公司|^[农人工]行|直属|省(政?府|军区)|陈省身|中心|分[行库]|(支[行库]|资金|清算|业务).*|(营业|管理)[部室厅]?|分理处|城关"

pttn = "(内蒙古区?|[^市盟县区旗]*?省|^.*?自治区)?(.*?州?盟?市?)(.*[旗区县]?)(中心)?(支[行库])?.*?$"

参见:  如何提取关键字(出处: ExcelHome技术论坛)


TA的精华主题

TA的得分主题

发表于 2018-7-10 08:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ggmmlol 发表于 2018-7-9 22:16
有些不大明白你两句话的意思。
我认为,正则表达式的编写,也有一个熟能生巧的过程,当你掌握了一定的“ ...

像我即使简单的正则式,也需要通过正则对象的基本属性、方法 反复调试代码(刚入门)。
如果能轻松编写出复杂的 正则表达式,可能也无需求助了,你的工具宏 不适用大多求助者使用。
但适合于入门级别的人 进一步提高用。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-29 11:29 , Processed in 0.029719 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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