fonction pour chercher une valeur en fonction de 2 conditions

benjy555

XLDnaute Junior
Bonjour

Je vous explique mon problème sur lequel je m'arrache les cheveux (le mieux étant de voir directement le fichier excel joint) :

Colone A | Colone B | Colone C | Colone D | Colone E
Nom | Performance | date de mesure | ecart date\aujourdhui | Performance a retenir

Le but est de chercher la colonne E performance à retenir mais le problème est que pour un même Nom en colonne A j'ai plusieurs lignes cad plusieurs mesure à des dates différentes.
Et je veux indiquer par une fonction en colonne E la performance (de la colonne B) dont la date de mesure (en colonne C) aura l’écart MINIMAL avec la date d'aujourd'hui (calculée en colone D).

Pour résumer, la fonction doit faire ceci : chercher pour tous les nom en A, le minimum des valeurs en D, et faire figurer la valeur de B correspondante.

Bon j’espère que c'est assez clairement expliqué... merci pour votre aide !
 

Pièces jointes

  • Classeur1.xlsx
    9.1 KB · Affichages: 63
  • Classeur1.xlsx
    9.1 KB · Affichages: 65
  • Classeur1.xlsx
    9.1 KB · Affichages: 63

herve62

XLDnaute Barbatruc
Supporter XLD
Re : fonction pour chercher une valeur en fonction de 2 conditions

Bonsoir
Moi j'aime bien ces genres de "défis" ( j'en ai fait plein ici , mais souvent en privé) , seulement la méthode :
tu mets le DEPART et l'ARRIVEE !!!!!!!!!! des bulles , com. .. comme tu veux
ex : j'ai CA ... je veux CA !!
A toi de JOUER !!! , sinon en MP
A+
 

benjy555

XLDnaute Junior
Re : fonction pour chercher une valeur en fonction de 2 conditions

j'ai mis des commentaires sur le fichier excel pour vous aider... merci
 

Pièces jointes

  • Classeur1.xlsx
    10.9 KB · Affichages: 46
  • Classeur1.xlsx
    10.9 KB · Affichages: 47
  • Classeur1.xlsx
    10.9 KB · Affichages: 48

benjy555

XLDnaute Junior
Re : fonction pour chercher une valeur en fonction de 2 conditions

@ gardien de phare : le probleme c'est que tu ne prends en compte qu'une seule condition : la date . Or il faut aussi prendre en compte la condition du Nom car si tu rajoute une ligne avec un autre nom la fonction fait toujours remonter la même valeur ce qui n'est pas bon. Tu peux vois en PJ j'ai ajjouté la ligne "jaques" et le résultat de la fonction donne encor 90 au lieu de 89..

@ Si.. : bravo ça marche nikel ! en revanche le gros soucis c'est que je ne maitrise pas du tt VBA alors y a t il un moyen de traduire cela avec des fonction classique ou alors peux tu m'expliquer brievement la marche à suivre..

En tout vas Merci à vous !
 

Pièces jointes

  • benjy BIS.xlsx
    11.2 KB · Affichages: 34

benjy555

XLDnaute Junior
Re : fonction pour chercher une valeur en fonction de 2 conditions

voila r@chid a trouvé la solution !

En réalité mon vrai fichier fait plus de 60 000 lignes avec je ne sais combien de référence différentes pour lesquelles il faut attribuer la bonne valeur. j'ai donc recopier ton code mais en modifiant ainsi : ( en remettant la 1ere cellule en A1)
=INDEX(E:E;EQUIV(MAX(SI(D:D=D2;F:F));SI(D:D=D2;F:F);0))

mais lorsque je copie ceci sur toute la colone, l'ordi commence a calculer mais il plante car je crois que la formule est trop complex pour 60 000 lignes...

Avez vous une solution ou est ce normal que cela prenne du temps ?

Merci
 

R@chid

XLDnaute Barbatruc
Supporter XLD
Re : fonction pour chercher une valeur en fonction de 2 conditions

Bonsoir,
Oui c'est normal puisque la formule est matricielle, alors tu auras certainement ce problème de ralentissement...
Si ta Base est triée par noms, on peut faire par formule classique...
Voir PJ
@ + +
 

Pièces jointes

  • Benjy_FormuleClassique.xlsx
    10.3 KB · Affichages: 32

benjy555

XLDnaute Junior
Re : fonction pour chercher une valeur en fonction de 2 conditions

et c'est la que mes connaissances s’arrêtent je suis nul désolé ... r@chid : je ne sais pas ce que je dois faire de ça :

Plage_Perf=DECALER(Feuil1!$B$1;EQUIV(Feuil1!$A10;Feuil1!$A:$A;0)-1;;NB.SI(Feuil1!$A:$A;Feuil1!$A10))
Plage_Dates=DECALER(Plage_Perf;;1)

peux tu me détailler ou il n'y a rien a détailler justement et simplement recopier ces deux lignes dans la feuille (ce qui me surprend un peu..)

merci encror pardon
 

R@chid

XLDnaute Barbatruc
Supporter XLD
Re : fonction pour chercher une valeur en fonction de 2 conditions

Bonsoir,
il faut le faire dans le gestionnaire de noms...
Benjy.png
@ + +
 

benjy555

XLDnaute Junior
Re : fonction pour chercher une valeur en fonction de 2 conditions

ok merci j'ai trouvé l'endroit ou ceci se trouve.

En revanche maintenant je tente de faire ces plages sur mon vrai fichier qui est une base lourde d'environ 60000 lignes.
Et surtout l'ordre de mes colones n'est pas le même que sur le fichier model que j'ai mis en ligne.
Pourrais tu ajjuster les plages et la fonction à mon fichier ?

sachant que :
Colonne "Nom" est en A
Colonne "date" est en D
Colone " performance" est en I

aprés pour la formule je n'ai qu'a la tirer sur toutes les lignes ? il n'y a pas de limite ?

merci
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : fonction pour chercher une valeur en fonction de 2 conditions

Bonjour benjy555, R@chid,

Le VBA peut permettre dans certains cas d'accroître la vitesse de traitement. Un exemple pour env. 60.000 lignes de données. Les données n'ont pas besoin d'être triées.
 

Pièces jointes

  • Benjy_vba v1.xls
    49.5 KB · Affichages: 47
Dernière édition:

benjy555

XLDnaute Junior
Re : fonction pour chercher une valeur en fonction de 2 conditions

Bonjour mapomme,

bravo ta programmation en VBA est hallucinante pour moi ça marche au top est c'est instantané ! Le seul très treès gros problème c'est que mis à part aller sur le"pas a pas détaillé" de la macro je serai incapable de modifier ta macro pour l'adapter à mon fichier...

J'ai testé la fonction de r@chid qui marche très bien sauf que sur 60000 ligne, l'ordi capote complètement ... dommage car c'était plus compréhensible pour moi...

Donc même demande que précédemment, serait ce possible d’ajuster ta macro à mon fichier ?
Sachant que :
Sur ma feuille il y a deja toute la base de donnée (donc l étape 1 de "génération" est inutile)

Colonne "Nom" est en A
Colonne "date" est en D
Colonne " performance" est en I

(évidemment entre il y a d'autre colonnes contenant des info)

Bref sera t il possible après modif de copier ta macro est simplement la coller dans mon fichier ?

Merci beaucoup
 

Discussions similaires

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA