EXCEL中如何提取某单元格最后一个空格之前的所有字符,每个单元格空格数不一定一样

比方说该单元格为A1,单元格内容:PGPCBWXPEG4000FLKINHBG50LB... 比方说该单元格为A1,单元格内容:PGP CBWX PEG 4000 FLK INH BG50LB 展开
 我来答
tlxwd
2015-05-22 · TA获得超过1148个赞
知道大有可为答主
回答量:1592
采纳率:66%
帮助的人:705万
展开全部

最简单的办法:

1、首先自定义一个函数,代码如下:

------------------

Option Compare Text
Function FrSpace(ByVal rng As Range, ByVal T As String)'函数的名称自定义为“FrSpace”
Dim i%, k%, str$, Position%, CountSpace%
Dim Arr() As String
k = 0
str = rng
For i = 1 To Len(str)
If Mid(str, i, 1) = T Then
    ReDim Preserve Arr(k)
    Arr(k) = i
    k = k + 1
End If
Next i
CountSpace = Arr(k - 2)
FrSpace = Left(str, CountSpace - 1)
End Function
-----------------------

2、当函数一旦创建后,就可以象excel的内置函数一样直接使用了。如:=FrSpace(A1," ")

3、该函数的参数介绍:

  从函数自定义的第二行就不难看出撰函数的参数了。

  参数(单元格对象,文本对象)

  该函数的参数由两部分组成,前一个为单元格对象,后一个为你想要确定的文本对象。

由此可知,该函数不仅可以对空格,也可以对其它的文本进行同样的求解,增强了函数的适用性。

追问

代码有问题,标黄部分出错,截取的不是最后一个空格之前的全部内容,B5也出错了,全部都截取了。

凌文元LWY
高粉答主

推荐于2016-11-27 · 每个回答都超有意思的
知道大有可为答主
回答量:3.6万
采纳率:76%
帮助的人:1.3亿
展开全部

在B1单元格输入以下公式,然后向下填充公式

=LEFT(A1,FIND("座",SUBSTITUTE(A1," ","座",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-1)))

 

详见附图

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沈一民
2015-05-22 · TA获得超过8012个赞
知道大有可为答主
回答量:8448
采纳率:85%
帮助的人:2637万
展开全部

B2=LEFT(A1,FIND("-",SUBSTITUTE(A1," ","-",LEN(A1)-LEN(SUBSTITUTE(A1," ",))))-1)向下复制

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
落囲
2015-05-22 · 超过29用户采纳过TA的回答
知道答主
回答量:87
采纳率:0%
帮助的人:51.7万
展开全部
如果最后一个空格后面字符串长度是固定的话,可以用函数解决,否则必须用VBA解决
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
萍zxp
2015-05-22
知道答主
回答量:9
采纳率:0%
帮助的人:3.3万
展开全部
=LEFT(A1,LEN(A1)-FIND(" ",A1)+1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式