Bonjour à tous,
Je bricole pour extraire des chiffres de chaînes de caractères de longueurs et de contenus très variables.
En fouillant sur le net je trouve des solutions fonctionnelles utilisant des formules comme :
=MIN(SI(ESTNUM(CHERCHE({0;1;2;3;4;5;6;7;8;9};A1));CHERCHE({0;1;2;3;4;5;6;7;8;9};A1);""))
en supposant que ma chaîne de caractères soit en cellule A1.
Ca marche mais je ne comprends pas comment et j'ai horreur de ça. Dans le coup je suis en train de décomposer la formule et bloque dès le départ sur le fonctionnement de CHERCHE.
Mon fichier de travail et mes chaînes de caractères test (je bosse dans les fruits et légumes ;-)) :
A1 : Epinards Sud Est 1 Kg
A2 : Kiwi Cal 36/39 Corse 10 Kg Conv
A3 : Kiwi Cal 36/39 Corse 12 Kg Conv
Je teste la formule hyper basique suivante dans chaque cas :
=CHERCHE({0;1;2;3;4;5;6;7;8;9};A1)
(puis idem avec les cellules A2 et A3 référencées dans cette même formule toute simple).
Résultats de la formule :
1er cas : renvoie #VALEUR!
2ème cas : renvoie 23
3ème cas : renvoie #VALEUR!
Questions :
- cette formule doit-elle être saisie en mode matriciel (ctrl maj entrée) ou pas ? Ça ne change rien aux résultats et à mon incompréhension des résultats.
- pourquoi la position du 1 ne m'est-elle pas renvoyée dans le 1er cas ?
- pourquoi tous les premiers chiffres sont-ils zappés, exceptés le 0, dans le 2ème cas ? La matrice de recherche est balayée dans l'ordre ?
- j'ai dégagé le 0 dans le 3ème cas et l'ai remplacé par un 2, de nouveau erreur, ce qui tendrait à confirmer l'hypothèse ci-dessus...
Bref je ne comprends pas ce que fait Excel sur ce coup, vos lumières me seraient bien précieuses.
PS : la formule =MIN(SI(ESTNUM(CHERCHE({0;1;2;3;4;5;6;7;8;9};A1));CHERCHE({0;1;2;3;4;5;6;7;8;9};A1);"")) me renvoie 18 pour la chaîne "Epinards Sud Est 1 Kg", ce qui est correct ! Donc elle marche globalement ! Grrr je ne comprends pas, je déteste ça...
Merci infiniment,
JB
Partager