ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

   
易厚学堂-专业的职场技能充电站 永久免费,网表让Excel秒变数据库 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel函数公式学习大典 高效办公必会的Office实战技巧 免费下载Excel行业应用视频
300集Office 2010微视频教程 Tableau-数据可视化工具 打造核心竞争力的职场宝典 13门Excel免费公开课任你学
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 免费的Excel考勤计算系统
查看: 245|回复: 9

如何添加句子中特殊字符串

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-5-16 22:58 | 显示全部楼层 |阅读模式
如果将表中类似于_target_num_15_1或_target_time_19这样的字符前后加入空格并且不影响整体的句子

提问.zip

6.5 KB, 下载次数: 18

TA的精华主题

TA的得分主题

发表于 2018-5-17 12:43 | 显示全部楼层
F2:H6{=IFERROR(REPLACE(IF(COLUMN(A1)=1,B2,I2),SMALL(IF(MID(IF(COLUMN(A1)=1,B2,I2),COLUMN($A:$J),1)=$D$2:$D$3,COLUMN($A:$J)),COLUMN(A1)),,"@"),"")

I2:I6=LOOKUP(1,0/(F2:H2<>""),F2:H2)
4474.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-5-18 10:04 | 显示全部楼层
感谢楼上 但是貌似不能完成 他需要_target_num_15_1 这样的字符串前后都增加空格...现在貌似只能完成前面加入空格...

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-5-18 10:05 | 显示全部楼层
hcm19522 发表于 2018-5-17 12:43
F2:H6{=IFERROR(REPLACE(IF(COLUMN(A1)=1,B2,I2),SMALL(IF(MID(IF(COLUMN(A1)=1,B2,I2),COLUMN($A:$J),1)=$ ...

感谢 但是貌似不能完成 他需要_target_num_15_1 这样的字符串前后都增加空格...现在貌似只能完成前面加入空格...

TA的精华主题

TA的得分主题

发表于 2018-8-19 20:33 | 显示全部楼层
本帖最后由 ggmmlol 于 2018-8-19 20:57 编辑

用我原创的【超级查找替换】加载宏小工具(完全免费,下载地址见6楼),轻松为特定组合的字符串添加前后缀。

演示如下:
其中,为了方便突出效果,添加的字符选择了可见的“#”。你可自行修改为任何的 前缀、后缀(两者允许不相同)

查找:(_target_([a-z0-9]+_){2,})
替换为:#$1#

超级替换72.gif



TA的精华主题

TA的得分主题

发表于 2018-8-19 20:39 | 显示全部楼层


楼上演示中所用到的【超级查找替换】加载宏小工具,由本人原创并在本论坛首发,可完全免费使用。

下载地址:
[加载宏]单元格小工具之六——超级查找替换
http://club.excelhome.net/thread-1421478-1-1.html
(出处: ExcelHome技术论坛)

TA的精华主题

TA的得分主题

发表于 2018-8-19 20:44 | 显示全部楼层
ggmmlol 发表于 2018-8-19 20:33
用我原创的【超级查找替换】加载宏小工具,轻松为特定组合的字符串添加前后缀。

演示如下:

请问你的 $1 这个 是代表匹配出来的结果吗?

TA的精华主题

TA的得分主题

发表于 2018-8-19 21:02 | 显示全部楼层
本帖最后由 ggmmlol 于 2018-8-19 21:06 编辑
cjc209 发表于 2018-8-19 20:44
请问你的 $1 这个 是代表匹配出来的结果吗?

$1代表查找式中第1对括号所对应的内容。

本例子中,查找的表达式中,第1对括号是在最外层,所以在本例中,它也就是代表匹配出来的全部内容。

这是正则表达式工具的替换规则。

关于正则表达式的相关知识,可以参考VBA版块的liulang0808 版主的精华贴。

TA的精华主题

TA的得分主题

发表于 2018-8-19 21:16 | 显示全部楼层
本帖最后由 micch 于 2018-8-19 21:43 编辑

B1,数组,右拉下拉,B列是结果
  1. =IF(COLUMN(A1)>COUNT(ROW($2:$222)/((MMULT(N(LENB(MID($A1,ROW($1:$221)+{0,1},1))={2,1}),{1;1})=2)+(MMULT(N(LENB(MID($A1,ROW($1:$221)+{0,1},1))={1,2}),{1;1})=2))),$A1,REPLACE(C1,LARGE(((MMULT(N(LENB(MID($A1,ROW($1:$221)+{0,1},1))={2,1}),{1;1})=2)+(MMULT(N(LENB(MID($A1,ROW($1:$221)+{0,1},1))={1,2}),{1;1})=2))*ROW($2:$222),COUNT(ROW($2:$222)/((MMULT(N(LENB(MID($A1,ROW($1:$221)+{0,1},1))={2,1}),{1;1})=2)+(MMULT(N(LENB(MID($A1,ROW($1:$221)+{0,1},1))={1,2}),{1;1})=2)))+1-COLUMN(A1)),," "))
复制代码
提问.zip (15.31 KB, 下载次数: 1)

TA的精华主题

TA的得分主题

发表于 2018-8-19 22:03 | 显示全部楼层
Sub test()
arr = [a1].CurrentRegion
Set s = CreateObject("vbscript.regexp")
With s
    .Global = 1
    .Pattern = "(_target\w+)(?=[一-龥])"
    For i = 1 To UBound(arr)
    Cells(i, 2) = .Replace(arr(i, 1), "[$1]")
    Next
End With
End Sub

这类数据用正则表达式最方便,[$1]表示前后加中括号,可以改成你要的空格“ $1 ”.
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关注官方微信,每天学会一个新技能

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

GMT+8, 2018-10-23 14:09 , Processed in 0.166319 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2017 Wooffice Inc.

   

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

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

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