如何在字符串中查找字符串

时间:2012-03-23 15:43:56

标签: excel excel-formula string-matching

我的列表包含100,000个站点链接字符串

  • 每个链接都是唯一的,但它具有一致的?Item=
  • 然后,它不是任何东西,或者在&符号之后继续。

我的问题是:如何提取商品编号?

我知道替换功能可以提供类似的功能,但它适用于固定大小,在我的情况下,字符串的大小可能不同。

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

www.site.com?sadfsf?sdfsdf&adfasfd?Item=JGFGGG55555&sdafsdfsdfsdf

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

2 个答案:

答案 0 :(得分:2)

如果这始终是字符串的最后一部分,则可以使用以下内容:

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

这假定:

  • 没有项目编号超过99位。
  • 项目编号后面没有其他字段。

修改

通过更新您的问题,很明显您在?Item=字段后面有一些包含其他数据的字符串。如果不使用VBA,则无法使用MIDFIND来提取此内容。

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

例如,使用以下命令创建列

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

这会获得以下值:JGFGGG55555&sdafsdfsdfsdf

接下来,使用以下命令创建一列:

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

通过搜索JGFGGG55555的第一个值并使用前面的部分,可以生成&:{{1}}。如果找不到,则只重复第一个值。

答案 1 :(得分:0)

这个公式应该适用于给出的两个例子:

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