web-dev-qa-db-fra.com

extraire le numéro d'une chaîne de texte - Excel

J'essaie d'extraire un nombre du milieu d'une chaîne de texte dans Excel. La chaîne est un mélange de caractères alpha, numériques et certains caractères.

Exemple de chaîne de données: -

Web Address 
/products_list.php?retailer=8&cat=43
/products_list.php?retailer=22&cat=43
/products_list.php?retailer=8&cat=1011
/products_list.php?retailer=81&cat=1023
/products_list.php?retailer=147&cat=1224
/products_list.php?retailer=8&cat=1
/products_list.php?retailer=147&cat=4
/products_list.php?retailer=147&cat=401

Ce que je veux réaliser est 

example Excel

Je suis allé aussi loin que de sortir tous les chiffres du texte, mais je ne pouvais vraiment pas comprendre comment mettre les chiffres au milieu ou à la fin. 

Ma tentative de code pour résoudre le problème était la suivante: -

=SUM(MID(0&A3,LARGE(ISNUMBER(--MID(A3,ROW(INDIRECT("1:"&LEN(A3))),1))*ROW(INDIRECT("1:"&LEN(A3))),ROW(INDIRECT("1:"&LEN(A3))))+1,1)*10^ROW(INDIRECT("1:"&LEN(A3)))/10)

SCE pour une formule matricielle.

Si possible, je préférerais une formule à une macro.

oh, au cas où cela ferait une différence en utilisant Excel 2010.

6
Penfold0101

Détaillant (B2):

=LEFT(RIGHT(A2,LEN(A2)-FIND("=",A2)),FIND("&",RIGHT(A2,LEN(A2)-FIND("=",A2)))-1)

Numéro de chat (C2):

=RIGHT(A2,LEN(A2)-(FIND("cat=",A2)+3))

faites glisser la formule vers le bas et

enter image description here

5
user2140173

Cela semble vraiment moche (je ne suis pas un expert Excel), mais cela a fonctionné avec la liste que vous avez fournie.

Formule pour détaillant:

=MID(A2,FIND("retailer=",A2)+9,FIND("&",A2)-(FIND("retailer=",A2)+9))

Formule pour numéro de chat:

=MID(A2,FIND("cat=",A2)+4,100)
2
Danny