Excel精英培训网

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

提取A列第4个“ - ”左侧的数据到B列

[复制链接]
发表于 2020-6-24 21:59 | 显示全部楼层 |阅读模式


提取A列第4个“ - ”左侧的数据到B列。
如果左侧只有3个“ - ”,则全部提取到B列。

提取A列第4个.rar

8.29 KB, 下载次数: 12

提取A列第4个“ - ”左侧的数据到B列

发表于 2020-6-25 08:03 | 显示全部楼层
自定函数16  “-”分隔后字符自定义连接代码如下:str引用单元格即可,number为指定连接数,这里使用“4”
Public Function GetSubStr(str$, number!) AsString
Dim b, c$, i!
If str Like "*-*" Then
    b= VBA.Split(str, "-")
    c= b(0)
   For i = 1 To WorksheetFunction.Min(number - 1, UBound(b))
       c = c & "-" & b(i)
   Next i
End If
GetSubStr = c
EndFunction
a.jpg


附件已添加好代码,可直接运行
提取A列第4个.zip (14.46 KB, 下载次数: 6)

评分

参与人数 1学分 +3 收起 理由
canmuzhang + 3 学习

查看全部评分

回复

使用道具 举报

发表于 2020-6-25 10:15 | 显示全部楼层
=LEFT(A1,IFERROR(FIND("@",SUBSTITUTE(A1,"-","@",4))-1,500))

评分

参与人数 1学分 +3 收起 理由
canmuzhang + 3 学习

查看全部评分

回复

使用道具 举报

发表于 2020-6-25 16:05 | 显示全部楼层
=TRIM(LEFT(SUBSTITUTE(A1,"-",REPT(" ",99),4),99))

评分

参与人数 1学分 +3 收起 理由
canmuzhang + 3 学习

查看全部评分

回复

使用道具 举报

发表于 2020-7-21 22:56 | 显示全部楼层
换个写法
=TEXTJOIN("-",,FILTERXML("<a><b>"&SUBSTITUTE(A1,"-","</b><b>")&"</b></a>","//b[position()<5]"))
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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