Microsoft 365 RechercheV inversé ou comment afficher la dernière occurence?

cgpa

XLDnaute Occasionnel
bonjour,
Je cherche depuis 4h à afficher le dernier prix connu d'un article dans un inventaire. J'ai essayé rechercheV, Index, Equiv... et beaucoup d'adaptations de formules glanées ci et là mais je n'y parviens pas. En fait, il me faudrait pouvoir utiliser une sorte de rechercheV par le bas et non par le haut.
Pouvez-vous m'aider selon la question dans le fichier en pj? Merci beaucoup.
 

Pièces jointes

  • inventaire essai.xlsx
    28.7 KB · Affichages: 17

merinos

XLDnaute Accro
Salut,

Pour Office 365 : encore plus simple... la fonction XLOOKUP (recherchex en Francais? ) elle est prevue avec la recherche depuis le bas de la liste.

VB:
=XLOOKUP([@RÉFÉRENCE];Tableau_Entrée[Référence];Tableau_Entrée[prix unitaire];"N/A";0;-1)
 

Pièces jointes

  • inventaire essai.xlsx
    28.7 KB · Affichages: 10

merinos

XLDnaute Accro
C'est la derniere occurence en commencant du bas...

le 4° parametre permets de soit:

1: prendre la permiere occurence
-1 : prendre la derniere occurence
2: dans une liste triée prendre la premiere occurence (rapide)
-2: dans une liste triée prendre la derniere occurence (rapide)

A noter que le 3° paramètre permets de faire de recherches du type "*nard" ou "Bern*" pour trouver Bernard
 

R@chid

XLDnaute Barbatruc
Bonjour @ tous,
C'est encore possible avec RECHERCHEV(),
Salut,

Pour Office 365 : encore plus simple... la fonction XLOOKUP (recherchex en Francais? ) elle est prevue avec la recherche depuis le bas de la liste.

VB:
=XLOOKUP([@RÉFÉRENCE];Tableau_Entrée[Référence];Tableau_Entrée[prix unitaire];"N/A";0;-1)
VB:
=SIERREUR(RECHERCHEV([@RÉFÉRENCE];TRIER(Tableau_Entrée;2;-1);6;0);"N/A")
La fonction TRIER() fait l'affaire.


Cordialement
 

cgpa

XLDnaute Occasionnel
Bonjour @ tous,
C'est encore possible avec RECHERCHEV(),

VB:
=SIERREUR(RECHERCHEV([@RÉFÉRENCE];TRIER(Tableau_Entrée;2;-1);6;0);"N/A")
La fonction TRIER() fait l'affaire.


Cordialement


Bonjour @ tous,
C'est encore possible avec RECHERCHEV(),

VB:
=SIERREUR(RECHERCHEV([@RÉFÉRENCE];TRIER(Tableau_Entrée;2;-1);6;0);"N/A")
La fonction TRIER() fait l'affaire.


Cordialement
Bonjour R@chid :) ,
Dans ma version d'Excel 2010 la fonction TRIER n'est pas acceptée. Nous sommes plusieurs à utiliser ce fichier, certains sont en 365, d'autres en 2010 et 2016. Connaissez-vous une macro pour effectuer la recherche de la dernière occurence? Excellente journée!
 

R@chid

XLDnaute Barbatruc
Bonjour,
Bonjour R@chid :) ,
Dans ma version d'Excel 2010 la fonction TRIER n'est pas acceptée. Nous sommes plusieurs à utiliser ce fichier, certains sont en 365, d'autres en 2010 et 2016. Connaissez-vous une macro pour effectuer la recherche de la dernière occurence? Excellente journée!
dans le préfixe il faut mettre Excel 2010 au lieu de Microsoft 365, les fonctions de 2010 sont regroupés en 2016 et en 365.
 

job75

XLDnaute Barbatruc
Bonjour à tous,

Entrez cette formule matricielle en inventaire!H5 :
VB:
=SIERREUR(INDEX(Tableau_Entrée[prix unitaire];EQUIV(1;([@RÉFÉRENCE]=Tableau_Entrée[Référence])*(Tableau_Entrée[Date]=MAX(SI(Tableau_Entrée[Référence]=[@RÉFÉRENCE];Tableau_Entrée[Date])));0));"")
Fonctionne sur toute version Excel (à partir d'Excel 2007 avec SIERREUR).

A+
 

Pièces jointes

  • inventaire essai(1).xlsx
    29.4 KB · Affichages: 12

cgpa

XLDnaute Occasionnel
Bonjour à tous,

Entrez cette formule matricielle en inventaire!H5 :
VB:
=SIERREUR(INDEX(Tableau_Entrée[prix unitaire];EQUIV(1;([@RÉFÉRENCE]=Tableau_Entrée[Référence])*(Tableau_Entrée[Date]=MAX(SI(Tableau_Entrée[Référence]=[@RÉFÉRENCE];Tableau_Entrée[Date])));0));"")
Fonctionne sur toute version Excel (à partir d'Excel 2007 avec SIERREUR).

A+
merci beaucoup!
 

Statistiques des forums

Discussions
312 323
Messages
2 087 297
Membres
103 511
dernier inscrit
mickael.das