如何在string中find一个string

我有像100,000个站点链接string的列表

  • 每个链接都是唯一的,但它是一致的?Item=
  • 然后,它不是什么也不是在符号之后继续。

我的问题是:如何取出项目编号?

我知道replace函数可以提供类似的function,但它适用于固定大小,在我的情况下,string可以是不同的大小。

链接示例:
www.site.com?sadfsf?sdfsdf&adfasfd?Item=JGFGGG55555
要么
www.site.com?sadfsf?sdfsdf&adfasfd?Item=JGFGGG55555&sdafsdfsdfsdf

在这两种情况下,我只需要获取JGFGGG55555

如果这总是string的最后部分,则可以使用以下内容:

 =MID(A1, FIND("?Item=", A1) + 6, 99) 

这假定:

  • 没有项目号码将超过99位数字。
  • 项目编号没有附加字段。

编辑:

随着你的问题的更新,显然你有一些额外的数据string?Item=字段。 没有使用VBA,没有一个简单的方法来使用MIDFIND来提取这个。

但是,您可以创build一个充当占位符的列。

例如,使用以下命令创build一个列:

 =MID(A1,FIND("?Item=",A1)+6,99) 

这会得到以下值: JGFGGG55555&sdafsdfsdfsdf

接下来,创build一个列使用:

 =IF(ISERROR(FIND("&",B2)),B2,LEFT(B2,FIND("&",B2)-1)) 

这产生: JGFGGG55555通过search第一个值为&和使用之前的部分。 如果没有find,第一个值是简单的重复。

这个公式应该适用于以下两个例子:

 =MID(A1,FIND("=",A1),IFERROR(LEN(A1)-FIND("&",A1,FIND("=",A1))-1,LEN(A1)+1-FIND("=",A1)))