以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  [求助]字符串提取  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=23342)

--  作者:coolbbs
--  发布时间:2012/12/22 9:18:00
--  [求助]字符串提取

已知[堆放区域]列有下面的字符串,要将最后一次出现的区字前面的数字提取出来,公式要怎么写?

我的大概思路是先得出出现区字的次数和*号出现的次数,*出现为零时,求出区最后出现的位置,然后用left()

易表里不知道没有这种函数啊,目前只找到instr 跟search函数但是,这两个是返回指定字符串在另一个字符串中首次出现的位置,找最后一次出现的位置不知道是啥?

3区、81支+315支*2区、130支*3区、89支  结果为3

2区、345支                                            结果2

3区、81支+315支*1区、130支*5区、12支  结果5




--  作者:dancedy
--  发布时间:2012/12/22 9:58:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:16.egd


--  作者:coolbbs
--  发布时间:2012/12/22 10:57:00
--  
改了一下公式,现在比较适合自用了,因为区的前面会有2位数情况出现

Substitute(Right(Eval("Split([堆放区域],""区""," + Text((Len([堆放区域]) - Len(Substitute([堆放区域],"区",""))) /2) + ")"),2),"*","")



图片点击可在新窗口打开查看谢谢 DANCEDY

--  作者:lyjzyq
--  发布时间:2012/12/24 14:51:00
--  
如果区的前面会有3或更多位数情况出现,上面的公式不能用,我改了一下,可以适用任意位
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:168.egd



--  作者:coolbbs
--  发布时间:2012/12/26 9:50:00
--  
以下是引用lyjzyq在2012-12-24 14:51:00的发言:
如果区的前面会有3或更多位数情况出现,上面的公式不能用,我改了一下,可以适用任意位
 下载信息  [文件大小:2.0 KB  下载次数:5]
图片点击可在新窗口打开查看点击浏览该文件:168.egd


学习了~3Q


--  作者:dancedy
--  发布时间:2012/12/26 11:10:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:18.egd