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 :

  1. Le texte brut est placé dans un tableau structuré (tSource)
  2. 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 Mais avec ce que j'ai mis dans mon premier message, à peu près tous les cas possibles sont présents. Mon problème étant la constance des données comme tu l'as justement fait remarquer. Je ne peux ni me reposer sur les caractères présents, ni sur leur nombre ça m'aurait bien simplifié la tâche.

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.

10auto.xlsx (9.93 Ko)
Rechercher des sujets similaires à "trouver formule"