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

Fermé
Come - Modifié le 2 août 2020 à 17:32
Raymond PENTIER Messages postés 58836 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 janvier 2025 - 3 août 2020 à 00:34
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

4 réponses

Raymond PENTIER Messages postés 58836 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 janvier 2025 17 275
2 août 2020 à 18:02
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
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 58836 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 janvier 2025 17 275 > Come
2 août 2020 à 23:44
Ah ?
Tu as vraiment tout f
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 250
Modifié le 2 août 2020 à 18:03
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
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 mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 250
2 août 2020 à 20:05
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 58836 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 janvier 2025 17 275
Modifié le 3 août 2020 à 00:07


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
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 58836 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 janvier 2025 17 275 > Come
3 août 2020 à 00:34
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