2012-03-23 135 views
0

我有像100000网站链接字符串如何找到一个字符串中的字符串

  • 每一个环节都是独一无二的名单,但是它有一致的?Item=
  • 然后,它的存在或是它&后继续符号。

我的问题是:如何取出物品编号?

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

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

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

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

+1

不知道我理解,但'instr'可以帮助你找到一个字符串中的字符串。 – assylias 2012-03-23 15:47:22

回答

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由搜索第一个值&并使用它之前的部分。如果没有找到,第一个值是简单的重复。

0

这个公式应为双方给出的示例工作:

=MID(A1,FIND("=",A1),IFERROR(LEN(A1)-FIND("&",A1,FIND("=",A1))-1,LEN(A1)+1-FIND("=",A1))) 
相关问题