Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

sylvanu

XLDnaute Barbatruc
Supporter XLD
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.
 

Pièces jointes

  • Index Equiv (4).xlsx
    9.5 KB · Affichages: 10

patricktoulon

XLDnaute Barbatruc
Bonjour
@sylvanu

faux!!
=LIGNE($B$3:$B$8)/1000) donne 0.003 pour toutes (je viens de tester )


et c'est tout a fait normal LIGNE(range plusieur cells ) donnera toujours la premiere ligne
si bien que je comprends pas comment tu y arrive avec cette astuces

et
puisque ton astuce "LIGNE(xx:xx)/1000" donne a tous la meme valeur qui donne"0.0003" dans cet exemple
autant soulager soulager la formule du calcul ligne met tout simplement 0.0001 en dur dans ta formule
=EQUIV(GRANDE.VALEUR($B$3:$B$8+0,0001;D3);$B$3:$B$8+0,0001;0)
il n'y a pas de petites economies

edit :
ok pigé
la validation en matricielle de la plage complete de reception incrémente automatiquement
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Patrick,
Excat, quelques $ de trop.
Le but était sur chaque ligne d'ajouter 0.001 0.002 0.003 .... pour dédoubler les valeurs identiques. Donc :
VB:
=INDEX($A$3:$A$8;EQUIV(GRANDE.VALEUR($B$3:$B$8+LIGNE($B3:$B8)/1000;D3);$B$3:$B$8+LIGNE($B3:$B8)/1000;0))
Ce qui donne pour chaque ligbne l'ajout de :
 

Pièces jointes

  • Index Equiv (4) (1).xlsx
    9.6 KB · Affichages: 4

Etoto

XLDnaute Barbatruc
Hello Patrick et sylvanu,

Moi, LIGNE renvoie bien des résultats différents.



@+
 

patricktoulon

XLDnaute Barbatruc
re
oui j'avais compris
en fait ta méthode fonctionne si on valide la plage complete de reception en matriciel
la mienne fonctionne si je valide en matriciel la premiere cellule de reception et que j’étends la formule ensuite vers le bas

c'est la validation en matriciel qui incrémente en fait 0.003 , 0.004 , 0.005
Bien vu en tout cas je garde
 

Etoto

XLDnaute Barbatruc
Re,
@Etoto, dans ma formule initiale une erreur était tout de même présente car avec les $ intempestifs, ça ne marche pas :
Regarde la pièce jointe 1133188
Intéressant, les références absolues bloquent un résultat matriciel ? Je savais pas. Etonnant !

Merci de l'information, sur ce, je vous laisse ensemble sachant que je suis venu sur ce fil seulement pour apporter une précision qui visiblement était plus vague que précise.
 

patricktoulon

XLDnaute Barbatruc
re
@Etoto
ben des fois elle sont nécessaires et des fois non, ca depend l'intention en fait

si je sélectionne 5 cellule dans une colonne et que je valide en matriciel les 5 cellule d'un coup alors
c'est
=LIGNE($B$3:$B$8)/1000

si j'en sélectionne qu'une
j’enlève alors les dollars je valide et j'étends vers le bas
LIGNE(B3:B8)/1000

demo
a gauche matrice en matriciel a droite formule étendues


autrement dit la formule de@sylvanu peut fonctionner de deux façons
en matrice matricielle avec dollars
en formule étendue sans les dollars
 

Pièces jointes

  • exemple Index Equiv GRANDVALEUR Le top 5 sans doublons .xlsx
    11 KB · Affichages: 3

Etoto

XLDnaute Barbatruc
Un peu complexe mais très intéressant, mais dans le cas où la fonction LIGNE est imbriquée dans une autre fonction, elle renvoie quoi si elle est matricielle avec dollars et matricielle sans dollars ? Ça pique ma curiosité.
 

patricktoulon

XLDnaute Barbatruc
re
meme imbriqué (c'est d'ailleurs le cas ici avec index /equiv )elle renvoie de la meme manière
les double ou triple et plus (imbrications) ne changent pas les priorités matricielles

ligne(xx:xx)/1000 donnera toujours la meme chose c'est l’étendu sans dollars qui incrémente ou la matricielle(avec dollars) qui incrémente pas le reste de la formule
 

Etoto

XLDnaute Barbatruc
Merci de tes précisions, c'est gentil de toujours répondre à mes questions.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…