Trouver une formule
Bonjour à toutes et tous,
J’ai besoin d’aide pour trouver une formule trop compliquée pour moi. Je vais essayer de m’expliquer clairement
Voilà, le constructeur pour lequel je travaille m’envoie un fichier de stock qui n’est pas exploitable en l’état. Trop d’informations sont contenues dans une même cellule. Ce que je veux c’est extraire ces données de manière à ce qu’elles apparaissent dans des cellules séparées. Le but étant ensuite de les transférer sur le logiciel avec lequel les commerciaux travaillent pour connaitre le stock disponible.
Voilà un extrait de ce que le constructeur m’envoie, il s'agit de 10 modèles différents tels qu'ils apparaissent pour 3 caractéristiques différentes :
4WD+Sport Seat Red+Black/Red+Black |
4WD+Sport Seat Red+Black/Red+Black |
4WD+Sport Seat Yellow+Black/Grey |
4WD+Sport Seat Grey+Red/Red+Black |
4WD+Sport Seat Grey+Red/Red+Black |
LUX Black/Black |
LUX Black/Brown |
LUX White/Black |
LUX White/Black |
COM Blue/Black |
Et voilà ce que je voudrais obtenir :
4WD+Sport Seat | Red | Black/Red+Black |
4WD+Sport Seat | Red | Black/Red+Black |
4WD+Sport Seat | Yellow | Black/Grey |
4WD+Sport Seat | Grey | Red/Red+Black |
4WD+Sport Seat | Grey | Red/Red+Black |
LUXURY | Black | Black |
LUXURY | Black | Brown |
LUXURY | White | Black |
LUXURY | White | Black |
COMFORT | Blue | Black |
J'ai déjà trouvé la formule pour la 1ère colonne et j'espère qu'en partant de ce que vous aurez pu me montrer, je serai ensuite capable de trouver la formule pour la 3ème colonne.
Pour la colonne du milieu en bleu, j’ai trouvé une formule qui fonctionne pour les 5 premiers et une autre pour les 5 derniers. Mais ce que je voudrais, c’est combiner les 2 en une seule formule qui fonctionnerait pour tous les cas de figure.
Ma 1ère formule donne ça :
=SI(ESTNUM(CHERCHE("Sport";E7));STXT(E7;CHERCHE("Seat";E7)+NBCAR("Seat");CHERCHE("+";E7;CHERCHE("Seat";E7))-(CHERCHE("Seat";E7)+NBCAR("Seat")));"")
Et ma 2nde ça :
=STXT(E7;CHERCHE(" ";E7)+1;CHERCHE("/";E7)-CHERCHE(" ";E7)-1)
Je précise au cas où ce serait nécessaire que mon niveau en Excel n’est pas très élevé, évitez de me faire partir sur des macros compliquées (pour moi) et ne parlez pas trop vite
J'espère avoir été claire. Je vous remercie beaucoup pour l’aide que vous pourrez m’apporter
Bonjour à tous,
selectionner la plage, puis données==convertir ==>espace==>terminer
ou bien
fractionner.texte(cellule;" ")
Crdlmt
Bonjour,
Merci pour ta réponse
Je ne pense pas que la 1ère solution fonctionne, la séparation que je souhaite n'est pas en lien avec les espaces. Et je souhaiterais plus une formule.
Je vais essayer la seconde solution. Je n'ai jamais utilisé cette fonction et je ne sais pas comment elle fonctionne. Mais de ce que j'ai compris en la regardant rapidement, je pense que le problème sera le même, les séparations que je souhaite ne sont pas simplement liées aux espaces.
"4WD+Sport Seat Red+Black/Red+Black" doit devenir "4WD+Sport Seat" puis "Red" puis "Black/Red+Black".
On a donc une séparation souhaitée au second espace entre "Seat" et "Red" (mais pas au 1er), puis au niveau du 2nd signe "+" (mais pas du 1er ni du 3ème)
Cordialement.
Bonjour à tous,
Il faut de la consistance dans tes données pour qu'une formule soit efficace. Là ce n'est pas le cas, quand on change de ligne on a les règles de séparation qui changent.
En plus, comment déduire LUXURY de LUX ou bien COMFORT de COM ? Dans l'état on ne pourra jamais te fournir une formule correcte.
Il faut que tu nous transmettes tous les "cas possibles" et leurs correspondances. Ensuite si tu veux vraiment une formule elle risque d'être super lourde et complexe. (puisqu'il va falloir faire du cas par cas).
Je pense que PowerQuery ou VBA seront plus adaptés.
Bonjour à tous !
Une approche, liée aux contraintes exprimées, via Power Query :
Note :
- Le texte brut est placé dans un tableau structuré (tSource)
- Si la source évolue, faire " Actualiser tout " (via le ruban par exemple) pour mettre à jour le tableau retourné par Power Query
Pour la 1ère colonne, j'ai déjà trouvé la solution, c'est pour ça que LUX est transformé en LUXURY.
C'est pour la seconde colonne, celle que j'ai mise en bleu, que je sollicitais de l'aide.
Je pensais avoir suffisamment montré de quoi je partais ainsi que le résultat auquel je voulais arriver dsl
En fait ce que j'imaginais dans ma tête, c'est de dire à Excel : si tu identifies que le champ contient le mot "Sport" alors tu appliques cette formule (celle que j'ai trouvée pour les 5 1ers cas), sinon tu appliques celle-là (celle que j'ai trouvée pour les 5 derniers). Mais je n'arrivais pas à faire cette combinaison avec une structure de type SI/ALORS/SINON. Après je suis partie du principe que c'était possible et que le problème venait de mes compétences en Excel
Je ne connais pas Power Query, encore moins VBA. Je vais voir si je peux faire quelque chose avec ça.
Merci à vous !
Bonjour à tous,
maintenant que j'ai compris, avec des formules, avec toujours la condition que les syntaxes ne changent pas.