Par formule : isoler une chaîne de caractères en fonction d'une valeur saisie

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

dionys0s

XLDnaute Impliqué
Bonjour le forum

j'ai dans une cellule des nombres séparés par une virgule.
Pour quatre nombres inscrits, j'ai donc trois virgules dans ma formule

J'aimerais pouvoir extraire le nième nombre de ma chaîne de caractère en fonction de l'index dans un tableau d'un renseignement saisi ailleurs (je sais déjà récupérer l'index avec EQUIV).
C'est à dire que si ma cellule contient '23,13,102,9 et que l'index renvoyé par ma saisie est 3, alors je voudrais extraire 102 de ma chaîne de caractère.

Je ne suis pas certain d'être ultra clair, ce n'est pas évident à formuler, mais mon fichier exemple est simple et facile je pense.

D'avance merci pour votre aide 😎
 

Pièces jointes

Re : Par formule : isoler une chaîne de caractères en fonction d'une valeur saisie

Re le forum


alors j'ai trouvé une solution par formule :

Code:
=STXT($A$3;SIERREUR(CHERCHE("µ";SUBSTITUE($A$3;",";"µ";EQUIV($D$3;$A$7:$A$11;0)-1);1)+1;1);SIERREUR(CHERCHE("µ";SUBSTITUE($A$3;",";"µ";EQUIV($D$3;$A$7:$A$11;0));1)-SIERREUR(CHERCHE("µ";SUBSTITUE($A$3;",";"µ";EQUIV($D$3;$A$7:$A$11;0)-1);1)+1;1);NBCAR($A$3)))

C'est pas ultra digeste, mais ça marche. Si vous trouvez mieux, n'hésitez pas ^_^
La démarche de la formule est détaillée en PJ.

Bonne journée tout le monde !
 

Pièces jointes

Re : Par formule : isoler une chaîne de caractères en fonction d'une valeur saisie

Bonjour,

A tester mais de toute façon la formule n'est pas plus digeste que la tienne :
=SI(D4=4;CNUM(STXT(A3;CHERCHE("-";SUBSTITUE(A3;",";"-";D4-1);1)+1;NBCAR(A3)));SI(D4=1;CNUM(STXT(A3;1;CHERCHE(",";A3;1)-1));CNUM(STXT((SUBSTITUE(SUBSTITUE(A3;",";"+";D4-1);",";"-";D4-1));(CHERCHE("+";(SUBSTITUE(SUBSTITUE(A3;",";"+";D4-1);",";"-";D4-1));1)+1);(CHERCHE("-";(SUBSTITUE(SUBSTITUE(A3;",";"+";D4-1);",";"-";D4-1));1))-(CHERCHE("+";(SUBSTITUE(SUBSTITUE(A3;",";"+";D4-1);",";"-";D4-1));1)+1)))))
 
Re : Par formule : isoler une chaîne de caractères en fonction d'une valeur saisie

Bonjour.
"Par formule" n'impliquant pas "sans VBA" je trouverais ceci plus digeste :
VB:
Function ParSplit(ByVal Z As String, ByVal N As Long) As String
ParSplit = Split(Z, ",")(N - 1)
End Function
Code:
=ParSplit($D$3;$D$4)
Si D4 est bien le numéro d'ordre de la sous-chaine (pas évident pour moi de le discerner dans la formule)
 
Dernière édition:
Re : Par formule : isoler une chaîne de caractères en fonction d'une valeur saisie

Bonjour Dranreb

Très bonne idée ! Du coup j'ai essayé de développer une fonction VBA qui renvoit un Range, et ça marche, sauf que je veux utiliser ce range pour définir une liste de validation, mais impossible de valider ma formule VBA dans l'assistant liste de validation. Même résultat avec une fonction string qui concaténerait des valeurs. Aurais-tu une idée ?
 
Re : Par formule : isoler une chaîne de caractères en fonction d'une valeur saisie

Pourrai-je voir c'est essai, je n'y vois pas très clair. Et il faudrait des tests parce que ce genre de contexte n'est pas évident pour moi non plus. Mais une fonction peut aussi retourner un tableau. Mettre As Variant() derrière.
 
Re : Par formule : isoler une chaîne de caractères en fonction d'une valeur saisie

Bonsoir @ tous,
Code:
=STXT(A3;TROUVE("*";SUBSTITUE(","&A3;",";"*";EQUIV(D3;A7:A10;0)));TROUVE("*";SUBSTITUE(","&A3&",";",";"*";EQUIV(D3;A7:A10;0)+1))-TROUVE("*";SUBSTITUE(","&A3;",";"*";EQUIV(D3;A7:A10;0)))-1)*1
@ + +
 
Re : Par formule : isoler une chaîne de caractères en fonction d'une valeur saisie

Bonjour Rachid, bonjour le forum

merci pour ton aide ! Ta formule est sensiblement plus courte que la mienne, ça va peut-être m'aider pour traiter mon problème ^^
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour