XL 2019 Doublons avec formule INDEX EQUIV

gregaparis

XLDnaute Nouveau
Bonjour,
Je suis vraiment bloqué sur une formule INDEX EQUIV qui me met des doublons. Je ne sais absolument pas quelle formule créer pour que dans mon tableau TOP5 je ne retrouve pas que mon sirop-erable-Ambre-bio et que je puisse trouver mes autres produits. A savoir que dans mon tableau original, les colonnes A et B sont un tableau croisé dynamique. Je ne sais pas si ca change quelque chose de vous le dire. Pouvez-vous m'aider? Merci
Voici mon fichier en pièce jointe.
 

Pièces jointes

  • Index Equiv.xlsx
    10 KB · Affichages: 7

patricktoulon

XLDnaute Barbatruc
re
@sylvanu
non c'est pas une erreur n'oublions pas l'index de grandevaleur
c'est d'ailleurs pour ca que le résultat est dans l'ordre inverse
tout simplement
si tu a 100 ,100,100
et A , B , C dans la colonne à indexer
grandevaleur(1) te donnera toujours C car la fonction lit tout le tableau et donc la dernière
je reconnais que c'est fichtrement complexe avec le reste de la formule a comprendre la logique
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Ca, je comprends puisque 100,100,100 vont faire 100.001 100.002 100.003 donc ce sera toujours la dernière qui remontera avec grande valeur.
Le problème qui m'échappe c'est pourquoi {=LIGNE($A$1:$A$20)/1000} donne toujours le même résultat quand utilisé seule mais donne un résultat correct quand elle se trouve au sein d'une équation plus complexe.
 

Etoto

XLDnaute Barbatruc
Re,
Ca, je comprends puisque 100,100,100 vont faire 100.001 100.002 100.003 donc ce sera toujours la dernière qui remontera avec grande valeur.
Le problème qui m'échappe c'est pourquoi {=LIGNE($A$1:$A$20)/1000} donne toujours le même résultat quand utilisé seule mais donne un résultat correct quand elle se trouve au sein d'une équation plus complexe.
Peut être qu'avec l'amélioration du matriciel sur Office 365, il n'y a pas cette "erreur".

Et cela donne bien plusieurs résultats dans des cellules, faut valider la matricielle par plage et ne pas valider qu'une cellule et incrémenter.

Capture d’écran 2022-03-10 082516.jpg
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
et oui avec 365 le matriciel est validé automatiquement c'est pour ca

chez moi je suis obligé de valider en matriciel sur 2013

et meme en model formule étendue de toute façon avec index equiv on est obligé de valider en matriciel

il y a deux sorte de matriciel
une formule que l'on valide dans UNE!! cellule en matriciel car elle doit chercher dans plusieurs cellules (index +equiv sont les plus courantes)(au besoins étendre la formule ;attention au address absolues )
et
une formule matrice de matriciel (comme c'est le cas ici dans ma demo des deux modes )le mode 1 (plusieurs cellules validées avec la meme formule(l'incrémentation sera automatique)

beaucoup confondent les deux formes matriciel et se retrouvent avec #VALEUR ou #N/A

en gros SI JE PUIS M'EXPRIMER AINSI
l'une est une matrice de matricielle(avec dollars)(l'incrémentation est automatique)
l'autre est une formule matricielle qui permet une lecture de plusieurs cellule en une seule formule (l’incrémentation se fera au fur et a mesure de l’étendue )

je suppose que les utilisateurs de 365 se servent finalement de la 2d puisque c'est valider automatiquement sauf ceux qui ont gardé les vieux reflexes sans doute

j'avoue qu'au boulot j'ai 365 et je suis perdu 😅😂🤣
 

Etoto

XLDnaute Barbatruc
j'avoue qu'au boulot j'ai 365 et je suis perdu 😅😂🤣
Tu es chanceux, jamais au boulot, il voudraient avoir 365 soit disant que 2016 suffit, mais y a tellement plus d'opportunité sur 365 je trouve. Heureusement qu'avec mes cours j'ai un compte Office 365 pour étudiant et j'ai rejoins le programme Office Insider. C'est le rêve. Donc au moins, pour mon ordinateur privé, je l'ai.
 

patricktoulon

XLDnaute Barbatruc
re
Ca, je comprends puisque 100,100,100 vont faire 100.001 100.002 100.003 donc ce
et non!!!!!! @sylvanu ca n'est pas la raison
grandevaleur(xx:xx;3) donnera le 3eme 100
si ca faisait des doublons avant c'est par ce que à l'inverse de grandevaleur qui donne le dernier (en cas de doublons) equiv lui donne le 1er item trouvé
autrement dit le problème se situe au niveau du fonctionnement interne de ces deux fonctions
une(equiv) qui donne la premiere occurrence et l'autre (grandevaleur)qui donne la dernière occurrence

j'ai 100 , 100 ,100 et A , B ,C en colonne a indexer
grandevaleur(3) va me donner 100
equiv (xx:xx;100;0) va me donner A

voilà ou se situe le problème que tu pallie d'une belle manière
en incrémentant 100+ 0.00x par ta formule ligne intégré dans la formule equiv(grandevaleur.....
ça n'a rien de sorcier finalement
 

patricktoulon

XLDnaute Barbatruc
reste que selon toute logique
le 0 du equiv qui est sensée donner la valeur exact devient visiblement 1 pour au dessus car 100.003 n'existe pas dans le tableau car c'est bien les valeurs qui sont incrémentée
là oui je suis d'accords ca devrait meme nous planter un #N/A

Hah!!! les petits secrets de MS 😂😂🤣

regarde
demo3.gif


normalement equiv(xx:xx;lavaleur incrémentée par grandevaleur;0) devrait planter normalement car 100.964 n'existe pas en valeur exact
donc le 0 de equiv est automatiquement transformé en 1(inférieur à)
 
Dernière édition:

Etoto

XLDnaute Barbatruc
C'est faux.
En informatique, on essaie de traiter tous les cas, mais bien souvent il y a la configuration à laquelle on n'a pas pensé.
Ce que les informaticiens nomment "pudiquement" des effets de bord.
Oui, je sais, je sais que beaucoup de choses manquent de logique, mais j'ai besoin de voir la logique derrière, c'est dû à mon trouble. Voilà pourquoi j'aime bien Excel, bien qu'il manque de logique parfois, il reste très facile à comprendre quand tu connais son fonctionnement.
 

patricktoulon

XLDnaute Barbatruc
hoh!! il y en a des plus corsées et plus drôles dans vba et excel et pas que d'ailleurs
chez MS quand il y arrivent pas c'est "effet de bord"😂🤣😂😅
et surtout des fois c'est qu'il n'ont pas envie de faire le correctif d'une version inf a supp
j'ai souvent eu comme réponse qu'il ne trouvaient pas nécessaire de faire le correctif
comme index en vba qui est limité par ce que cette fonction a été intégrée dans les versions ancestrales de excel et que les versions qu'on suivi ont tout simplement hérité de la version inférieure
et j'en passe et des meilleures 😂🤣

imagine toi en 97 avec un tableaur excel 97 tout beau tout bien un beau camenbert
je me souviens en ce temps là je faisait des tableaux pour parier au tiercé/quinté avec des formules
et bien aujourd’hui imagine toi un Gruyere voila c'est office 🤣🤣🤣
j'ai jamais gagné va savoir pour quoi toi 😂🤣😂🤣
 

Etoto

XLDnaute Barbatruc
imagine toi en 97 avec un tableaur excel 97 tout beau tout bien un beau camenbert
je me souviens en ce temps là je faisait des tableaux pour parier au tiercé/quinté avec des formules
et bien aujourd’hui imagine toi un Gruyere voila c'est office 🤣🤣🤣
j'ai jamais gagné va savoir pour quoi toi 😂🤣😂🤣
Le problème des grosses entreprises je trouve, mais j'aime bien le Gruyère et pour info, le Gruyère suisse n'a pas de trous ! C'est les français qui ont troué le Gruyère. 🤣
 
Dernière édition:

gregaparis

XLDnaute Nouveau
Bonsoir gregaparis, et bienvenu sur XLD,
Un essai en PJ avec :
VB:
=INDEX($A$3:$A$8;EQUIV(GRANDE.VALEUR($B$3:$B$8+LIGNE($B$3:$B$8)/1000;D3);$B$3:$B$8+LIGNE($B$3:$B$8)/1000;0))
Formule matricielle donc valider par Maj+Ctrl+Entrée.
L'astuce est d'ajouter à chaque valeur ligne()/1000. Les valeurs identiques deviennent donc différentes, ce qui permet de dédoublonner.
Salut Sylvanu et merci
Je ne vous ai pas montré le tableau original car il y a des informations de mon entreprise. J'ai recopié ta formule en E3 et F3 mais il me sort en E3 un montant de 18 (n'étant pas le plus élevé du tableau) et ce montant de 18 correspond au dernier de la liste en A. Je ne comprend pas.
Je ne sais pas ce qui peux clocher.

Voici ce que j'ai copié en E:
1646918835295.png


Voici ce que j'ai copié en F
1646918755244.png


Voici mon résultat
1646918686164.png
 

Pièces jointes

  • 1646918601731.png
    1646918601731.png
    12.3 KB · Affichages: 31
Dernière édition:

Statistiques des forums

Discussions
315 094
Messages
2 116 145
Membres
112 669
dernier inscrit
Guigui2502