2012-03-23 3 views
0

J'ai la liste avec comme 100 000 chaînes de lien du siteComment trouver une chaîne dans une chaîne

  • Chaque lien est unique, mais il a cohérente ?Item=
  • Ensuite, il est rien ou il continue après & symbole.

Ma question est: Comment puis-je retirer les numéros d'article?

Je sais que la fonction de remplacement peut offrir des fonctionnalités similaires, mais cela fonctionne avec des tailles fixes, dans mon cas, la chaîne peut être de taille différente.

exemple du lien:
www.site.com?sadfsf?sdfsdf&adfasfd?Item=JGFGGG55555
ou
www.site.com?sadfsf?sdfsdf&adfasfd?Item=JGFGGG55555&sdafsdfsdfsdf

Dans les deux cas, je dois obtenir JGFGGG55555 seulement

+1

Je ne sais pas, mais je comprends 'instr' pourrait vous aider à trouver une chaîne dans une chaîne. – assylias

Répondre

2

Si ce qui est toujours la dernière partie de la chaîne, vous pouvez utiliser les éléments suivants:

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

Cela suppose:

  • aucun numéro d'article ne dépassera 99 chiffres.
  • aucun champ supplémentaire ne suit le numéro d'article.

Edit:

Avec la mise à jour à votre question, il est évident que vous avez des chaînes avec des données supplémentaires après le champ ?Item=. Sans utiliser VBA il n'y a pas un moyen simple d'utiliser MID et FIND pour extraire cela.

Cependant, vous pouvez créer une colonne qui agit comme un espace réservé.

Par exemple, créer une colonne en utilisant:

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

Cela vous obtient la valeur suivante: JGFGGG55555&sdafsdfsdfsdf

Ensuite, créez une colonne en utilisant:

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

Ce produit: JGFGGG55555 par recherche la première valeur pour un & et en utilisant la partie avant. Si elle n'est pas trouvée, la première valeur est simplement répétée.

0

Cette formule devrait fonctionner aussi bien pour les exemples donnés:

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