renvoyer le n° de ligne d'une recherche pour renvoyer le max entre 3 colonnes

Niquido

XLDnaute Junior
Bonjour,

J'ai 2 fichiers, mes 2 fichiers ont dans leur première colonne des références identiques.

Dans le tableau1 du fichier1, il y à 5 colonnes avec des dates.
Dans mon tableau2 du fichier2 je souhaite rechercher la ligne de ma référence dans le tableau1 et renvoyer la date max des 5 colonnes correspondantes.

rechercher le max à la limite je sais faire ça : "=MAX(fichier2.xlsx!Tableau2[@[debut]:[fin]])"
mais ça me renvois le max de la colonne debut à fin pour le même numéro de ligne sur laquelle je suis dans mon fichier1

Comment faire !!??????!!!
 

Modeste

XLDnaute Barbatruc
Re : renvoyer le n° de ligne d'une recherche pour renvoyer le max entre 3 colonnes

Bonjour Niquido,

Comment faire !!??????!!!
Euh ... en nous ajoutant un petit fichier exemple (sans données confidentielles) qui permettra peut-être de mieux comprendre (ou d'être certain de ce qu'on croit comprendre). Dans un premier temps, remplace les deux fichiers distincts par deux feuilles d'un même classeur. Une vingtaine de lignes devrait suffire.

... C'est possible?
 

st007

XLDnaute Barbatruc
Re : renvoyer le n° de ligne d'une recherche pour renvoyer le max entre 3 colonnes

Bonjour,
Dans ce genre
un = equiv([tableau1]A1;feuil2[tableau2]A:A;0) t'indiquera le n° de ligne
donc = max(B & equiv:F & equiv)

avec l'excellent conseil de modeste, un jeu d'enfant ..
@ te lire
 

Niquido

XLDnaute Junior
Re : renvoyer le n° de ligne d'une recherche pour renvoyer le max entre 3 colonnes

Tout d'abord bonjour à vous deux, et merci de vos réponse.

effectivement les données ne doivents pas êtrent communiqué (dsl modeste), alors j'ai créé un petit fichier pour montrer ce que je veux faire.Regarde la pièce jointe test1.xlsx

dans ma feuille 2 j'ai réussi à trouver le numéro de la ligne de ma référence dans le tableau 1 (merci st007), avec la formule = EQUIV([@référence];Tableau1[références];0)

Par contre je n'arrive pas à m'en servire pour me renvoyer la date max des colonnes date 1 à date 9 de mon tableau 1
 

Pièces jointes

  • test1.xlsx
    12.4 KB · Affichages: 23
  • test1.xlsx
    12.4 KB · Affichages: 28

Modeste

XLDnaute Barbatruc
Re : renvoyer le n° de ligne d'une recherche pour renvoyer le max entre 3 colonnes

Bonjour Niquido, st007,

Il ne te reste plus qu'à prendre ta fonction EQUIV, ta fonction MAX, y ajouter un zeste de DECALER ... et tu y es! En C2 de ta Feuil2, essaie
Code:
=MAX(DECALER(Feuil1!$D$1:$L$1;EQUIV($A2;Feuil1!$A$1:$A$50;0)-1;0))
... Si j'ai bien compris!
 

Modeste

XLDnaute Barbatruc
Re : renvoyer le n° de ligne d'une recherche pour renvoyer le max entre 3 colonnes

Re,

Pour être complet, il existe deux manières d'écrire la même formule en conservant les références structurées des tableaux:

Code:
=MAX(DECALER(Tableau1[[#En-têtes];[date]:[date9]];EQUIV([@référence];Tableau1[[#Tout];[références]:[références]];0)-1;0))
Lien donné par mromain dans ce fil
(on duplique, en fin de formule, le nom de ligne [références]:[références])

ou
Code:
=MAX(DECALER(Tableau1[[#En-têtes];[date]:[date9]];EQUIV([@référence];INDIRECT("Tableau1[[#Tout];[références]]");0)-1;0))
Liens en cascade de david84 vers Misange, qui démarrent dans cet autre fil
(cette fois, on utilise la fonction INDIRECT)

... Merci aux auteurs et à ceux qui les ont découverts!
 

Niquido

XLDnaute Junior
Re : renvoyer le n° de ligne d'une recherche pour renvoyer le max entre 3 colonnes

Ok, j'avais déjà adapter ma formule pour utiliser l'outil tableau d'excel soit ta formule:
Code:
=MAX(DECALER(Tableau1[[#En-têtes];[date]:[date9]];EQUIV([@référence];Tableau1[[#Tout];[références]:[références]];0)-1;0))

Mais je voudrais savoir quelle est la meilleur méthode, ou si il n'y à pas de réponse à cette question laquelle est la plus rapide ?

Sachant que pour le moment je ne test que sur 10 ligne et qu'il y à plein d'autres formules dans mon tableau, je souhaite que chaques formule que j'utilise soit le plus rapide possible pour ne pas que ça soit trop long de traiter plus de 20000 lignes.
 

Modeste

XLDnaute Barbatruc
Re : renvoyer le n° de ligne d'une recherche pour renvoyer le max entre 3 colonnes

Re²,

Alors là, pour ce qui est de savoir laquelle des formules proposées serait la plus performante, je crains de ne pouvoir répondre!

Le plus simple serait de tester sur ton fichier ... les formules ne sont pas matricielles, si lenteur il y a, elle ne devrait pas être monstrueuse!? (mais je ne fais que subodorer!)
En cas de souci de ce type, tu pourrais ajouter une colonne supplémentaire dans ton Tableau1, qui afficherait le MAX des dates par ligne. Ne resterait plus, dans l'autre feuille, qu'un simple INDEX et EQUIV (ou RECHERCHEV)
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 730
Membres
110 553
dernier inscrit
loic55