Voila j'essaye désespérément avec le bagage que j'ai de créer une formule mais en vain.
JE vous explique les grandes trait de mon objectif c'est de rechercher dans une cellule les correspondances afin que j'impute un id à la cellule.
Donc j'ai des noms de modèles dans une base que je dois lié à une base modèle qui comporte des id.Le hic c'est que la saisi des noms de modèle n'est pas la même et pour compliquer la chose il faut que le modèle corresponde à l'année.
Comme dit l'adage "une image vaut mieux que de longs discours" voici un fichier avec un exemple de ce que je veux
Re : formule compliqué ou limite impossible ???? besoin aide svp
Merci de ton aide
Donc la feuille BaseVo, dans la colonne " Modèle" ,je cherche les noms des modèles dans la feuille " Modèle" dans la colonne "Modèle" et ensuite je compare les années dans les 2 feuilles.
Par exemple, je cherche dans la baseVO le modèle 147 fabriqué entre le 04/2001 et 10/2003 dans la feuille" modèle" pour connaitre son Id.
En cherchant , je tombe sur l'Id 2199 qui correspond dans la base modèle , à la cellule "147 (10/2000 - 09/2004)" donc modéle 147 ( date de production)
Donc il me faut une formule qui cherche les noms de modéle et qui prends en compte l'année pour identifier le bon Id
Re : formule compliqué ou limite impossible ???? besoin aide svp
Hello
Désolé d'avoir pris du temps.. mais j'ai toujours du mal avec les fonctions matricielles..... ;-)
dans la PJ tu vas voir en H, la formule qui te donne le résultat attendu
j'ai laissé les colonnes J et K pour "éclater" la formule
1) Commencer par donner des noms aux différentes colonnes de ta base "Modèle": ca donne plus de clarté dans les formules
--> aller dans Formules - Gestionnaire de Noms
2) écrire une formule matricielle: à valider par Ctr+Maj+Entrée
3) tirer la formule vers le bas
on multiplie cette matrice par les numéros de lignes: on récupère donc une matrice de 0 (Faux*numéro de ligne=0)
et de numéro de lignes: (1*numéro ligne = Numéro de ligne)
on ajoute les conditions sur les IdMarque, les années de début et fin de construction
on en prend le max pour récupérer un seul numéro de ligne (attention..si plusieurs ID sont possibles.. on ne récupèrera que le dernier de la liste = celui dont le numéro de ligne est le plus grand)
--> si il y en a plusieurs.. il faudra voir pour utiliser Grande.valeur. plutot que Max
maintenant qu'on a le numéro de ligne (résultat de la colonne J), il faut qu'on récupère le numéro d'ID correspondant:
avec la fonction Index(Matrice, indice de ligne)
!! j'ai fait indice de ligne -1.. car il y a un décalage de 1 ligne
dans le cas ou la formule de la colonne J ne trouve rien. elle renvoie 0.. la fonction Index va donc retourner #Valeur
on enrobe tout ca d'un joli sierreur.. et voila !!
Simple non? ;-)