Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion wajih_Excel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

wajih_Excel

XLDnaute Occasionnel
Salut Forum;

Je cherche une formule qui peut me donner la même résultat que les cellules en jaune sur le fichier en PJ

J'ai essayé avec la fonction RECHERCHEV mais ça ma donner une résultat erronée

Y'a t-il une solution pour ce problème sachant que la liste est longue et je n'ai pas la même nombre de ligne ?

Merci d'avance

En PJ l'exemple
 

Pièces jointes

Re : Formule

Bonsoir wajih_Excel,

On peut utiliser cette formule en H4 :

Code:
=INDEX(B:B;EQUIV(D4;A:A;0)+(D3=D4)+(D2=D4)+(D1=D4))
Hypothèses :

- Id_Produit classés, pour les 2 tableaux

- un maximum de 4 Id_Produit identiques consécutifs dans le 2ème tableau.

Edit : salut Victor21, pas rafraîchi

A+
 

Pièces jointes

Dernière édition:
Re : Formule

Bonsoir,
ci-joint une solution qui ne me conviens pas complètement mais qui donne le résultat escompté par rapport à l'exemple fourni.
Comme je ne connais pas la finalité du projet, je livre au cas où...
A+
Edit : bonsoir à Job et Victor
 

Pièces jointes

Re : Formule

Bonsoir le fil,

Une approche avec une autre formule matricielle :

Code:
=INDEX($B$4:$B$13;EQUIV(PETITE.VALEUR(SI(ENT($A$4:$A$13+LIGNE($A$4:$A$13)/9^9)=D4;$A$4:$A$13+LIGNE($A$4:$A$13)/9^9);NB.SI($D$4:D4;D4));$A$4:$A$13+LIGNE($A$4:$A$13)/9^9;0))

Matricielle à valider par CTRL + MAJ + ENTREE

@+
 
Re : Formule

Bonjour le fil, le forum,

Par rapport aux matricielles de David et Tibo, ma formule ne fait pas le poids 🙂

Tant pis, une autre :

Code:
=INDEX(B:B;EQUIV(D4;A:A;0)+NB.SI(D$3:D3;D4))
Là encore les 2 tableaux doivent avoir été triés.

A+
 

Pièces jointes

Re : Formule

Re,

Version (3), un peu plus élaborée :

Code:
=INDEX(B:B;EQUIV(D4;A:A;0)+NB.SI(D$3:D3;D4)/(NB.SI(D$3:D4;D4)<=NB.SI(A:A;D4)))
Edit : si l'on n'aime pas les #DIV/0 (moi je n'aime pas les SI...) :

Code:
=SI(NB.SI(D$3:D4;D4)<=NB.SI(A:A;D4);INDEX(B:B;EQUIV(D4;A:A;0)+NB.SI(D$3:D3;D4));"?")
Version (4).

A+
 

Pièces jointes

Dernière édition:
Re : Formule

Re
Par rapport aux matricielles de David et Tibo, ma formule ne fait pas le poids
Personnellement, je trouve la mienne "bancale", contrairement à celle de Tibo🙂 que l'on peut même légèrement simplifier :
Code:
=INDEX($B$4:$B$13;EQUIV(PETITE.VALEUR(SI($A$4:$A$13=D4;$A$4:$A$13+LIGNE($A$4:$A$13)/9^9);NB.SI($D$4:D4;D4));$A$4:$A$13+LIGNE($A$4:$A$13)/9^9;0))
Bravo Tibo
La tienne
Code:
=INDEX(B:B;EQUIV(D4;A:A;0)+NB.SI(D$3:D3;D4))
répond également à la commande tel que l'exemple est présenté, donc bien vu à toi aussi😎.
A+
 
Re : Formule

Re,

... la rapidité d'exécution...

Alors je fais exécuter 1000 fois la copie des tableaux, résultats sur mon vieil ordi (Excel 2003) :

- Formule job75 => 24 s 😡

- Formule Tibo => 1,75 s

- Formule Tibo-David84 => 1,75 s.

Ma formule calcule 3 NB.SI, celle de Tibo une seule...

A+
 

Pièces jointes

Re : Formule

Re,

Ah mais non, pouce !

Je pensais qu'une plage illimitée ne changeait rien ici => NB.SI(A:A;D4)

Mais non, il faut utiliser NB.SI(A$4:A$13;D4)

Code:
=INDEX(B:B;EQUIV(D4;A:A;0)+NB.SI(D$3:D3;D4)/(NB.SI(D$3:D4;D4)<=NB.SI(A$4:A$13;D4)))
Et alors... la durée du calcul passe à 1,45 s 🙂 (mais ça peut varier...).

On en apprend tous les jours sur XLD 😎

Edit : pour finir, j'ai testé sur mon portable avec Excel 2010.

Les 3 formules donnent des résultats très voisins, autour de 2,20 s.

A+
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
167
Réponses
5
Affichages
183
Réponses
10
Affichages
150
Réponses
3
Affichages
196
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…