Recherche de texte dans une cellule a partir d'une cellule>>association de

Come -  
Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour Tout le monde ,
Je suis à la recherche d'une solution , ou de piste afin de répondre a un besoin précis,
l’opération est plutôt simple , mais j'ai du mal a trouver la bonne combinaison de formules:

-dans ma colonne A j'ai plusieurs types de moteurs( V6,V8,L4,L6...)
-dans ma colonne B,j'ai la puissance correspondante a chaque type de moteurs(120ch,150ch,75ch,100ch)
-dans ma colonne C, j'ai un descriptif, contenant la marque, type de vehicule,année (details arbitraires, mais chaque ligne contient un des moteur dans la chaine de caractères )
exemple: MERCEDES BREAK V8 injection 2019,OPEL VECTRA 5 portes V6


j'aimerais pouvoir faire une recherche texte dans la colonne de description du modele,en utilisant les cellules de la colonneA en critere, pour mettre en evidence le type de moteur, et reporter la puissance dans la colonne a droite du descriptif

Quelqu'un aurait t-il une idée de comment faire?
Je vous remercie d'avance pour votre aide, fichier exemple en piece jointe

https://www.cjoint.com/c/JHcpE5j1md1


Configuration: Windows / Firefox 78.0
A voir également:

4 réponses

Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   17 353
 
Bonjour Come.

C'est vrai que je suis un peu fatigué, après une semaine de dur labeur et une courte nuit de sommeil ...
Mais je ne comprends pas :
  • Pourquoi faire un calcul en G alors que l'information est déjà disponible en B ?
  • Pourquoi en A4 tu as "V6" et en C4 "...V8..." ?
  • Pourquoi en A5 tu as "V8" et en C5 "...L4..." ?

Tant que je ne vois pas la raison de ces curiosités, je ne peux pas t'aider à aller plus loin !
1
Come
 
Bonjour Raymond , merci pour ta réponse.
j'ai tenté d'etre le plus concis possible dans mon explication, peut etre que ce n'étais pas tres clair.
en réalité le contenu de la colone a et b est lié.
ce qui est contenu dans la colone C n'est pas en rapport avec les deux colone precedentes.
je cherche le mot "L4" (a2) dans (C2) , si la chaine de caractere se trouve dans "RENAULT L4 CLIO 5P 2005" je souhaiterais avoir le nombre de chevaux correspondant en colonne G2.
Si L4 n'est pas present en C2,je veux qu'il continue a chercher, L6puis V6,V8,V6 TURBO,V8 TURBO...
dans mon fichier de travail, je n'aurais qu'un dizaine de ligne en colonne a et b et une centaine de modeles dans la colone C
0
Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   17 353 > Come
 
Ah ?
Tu as vraiment tout f
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonjour,

ce n'est pas l'exercice le plus simple.
En G2 :
=SI(MAX(SI(ESTERREUR(CHERCHE($A$2:$A$7;C2));0;1)*LIGNE($A$2:$A$7))=0;"";INDEX(B:B;MAX(SI(ESTERREUR(CHERCHE($A$2:$A$7;C2));0;1)*LIGNE($A$2:$A$7))))

Formule matricielle à valider avec Shift+Ctrl+Entrée
La formule doit s'entourer de { } si la validation est correcte.
A tirer vers le bas.
La formule cherche la présence de toutes les chaines de A sur une cellule de C.
Si plusieurs sont trouvées, elle prend la plus élevée. Il faut donc que les sous-chaines se trouvent devant les chaines plus longues.
Par exemple V6 devant V6 TURBO.
Il faut indiquer la plage précise des données en A, sinon >= 0. On pourrait compliquer un peu la formule pour ne plus en être tributaire.
https://www.cjoint.com/c/JHcp3RVd6hH
eric

1
Come
 
Bonjour Eric, Merci pour la formule magique, et ta réponse rapide! c'est exactement la fonction que je tentais d'obtenir.
Jy ai passé trois heures aujourd'hui ,n’étant pas du tout familier des formules matricielles, je n'aurais j'aimais trouvé la réponse .
je vais étudier ta formule en détail.
PS:Y a t-il des tutoriel pour debuter avec les formules matricielles?
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Pas à ma connaissance, c'est l'expérience qui se fait petit à petit.
Pour t'aider tu as l'évaluation d'une partie de formule :
Sélectionner la partie qui t'intéresse, par exemple :
CHERCHE($A$2:$A$7;C2)

F9 dessus te l'évalue, ce qui te donne la matrice
{9;#VALEUR!;#VALEUR!;#VALEUR!;#VALEUR!;#VALEUR!}

Tu vois que la 1ère valeur de la liste a été trouvée (L4 en position 9) et d'autres en erreur qu'il faut éliminer : SI(ESTERREUR(.
Et transformer ton 9 en n° de ligne :
CHERCHE($A$2:$A$7;C2));0;1)*LIGNE($A$2:$A$7)

Puis prendre le Max de tout ça, etc, en avançant morceau par morceau.
eric

1
Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   17 353
 


Ah ?
Tu as vraiment tout fait pour nous induire en erreur !
Pourquoi donc rassembler en seul tableau des éléments différents ?
Tu aurais dû nous proposer un tableau de données A1:B7 donnant la puissance selon le moteur, et un tableau de calcul E1:F12 permettant de trouver la puissance de machines selon leur descriptif.
Ceci dit, je n'aurais pas trouvé la solution d'eriiic, que je félicite !

1
Come
 
oui désolé, je n'applique pas la bonne méthode de mise en forme.
juste par curiosité, y a t-il une autre méthode pour résoudre la situation, sans calcul matriciel?
meme si la solution donnée par Eric est terriblement efficace
0
Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   17 353 > Come
 
Je ne vois pas d'autre approche possible que celle d'eriiic, surtout que tu as une cause d'erreur possible avec les cellules A5 et A7 !

La seule autre méthode serait d'écrire une macro ; encore faut-il pratiquer VBA, ce qui n'est pas mon cas ...
0