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

XL 2013 Récupérer valeur hors exclusion

Spinzi

XLDnaute Impliqué
Bonjour à tou.t.e.s,

j'ai un souci avec un probleme que je n'arrive pas à résoudre, je me fais des noeuds au cerveau ...
J'ai une "base de données" organisée en lignes => ID/valeur1/valeur2/valeur3 ...
Je souhaite récupérer au maximum 3 valeurs par ID (Y:AA) :
_sans doublon
_en fonction d'un nombre d'occurrence (décroissant : + vers -)
_sans ramener les valeurs exclues (AD2:AD3)

Merci beaucoup pour vos conseils et éléments de réponse.
Spinzi
 

Pièces jointes

  • Recupérer valeur hors exclusion.xlsx
    15.9 KB · Affichages: 16

xUpsilon

XLDnaute Accro
Bonjour,

Via VBA ci-joint.
Pas besoin de mentionner les #NOMBRE ou autres erreurs dans les exclusions, elles sont automatiquement ignorées.

Bonne journée,
 

Pièces jointes

  • Recupérer valeur hors exclusion.xlsm
    27.3 KB · Affichages: 3

Spinzi

XLDnaute Impliqué
Merci pour ton retour !
C'est toujours intéressant de voir ce qu'il est faisable de faire avec VBA.
Cependant je n'ai pas précisé mais je cherche une solution via formule.

Merci tout de même,
Spinzi
 

xUpsilon

XLDnaute Accro
Bonjour,

Via formule ci-joint.
C'est sacrément alambiqué, il y a probablement possibilité de faire mieux.
Voici comment ça fonctionne :
- on retire les valeurs d'erreurs via FILTRE()
- on récupère les valeurs unique hors erreur via UNIQUE()
- on récupère les valeurs uniques hors exclusion et hors erreurs via une autre fonction FILTRE()
- on compte le nombre d'occurrence de chacune des valeurs ainsi récupérée, puis on ressort la kième plus grande valeur via GRANDE.VALEUR() et NB.SI()
- on utilise un SI.MULTIPLE() pour remonter aux valeurs textuelles via une égalité entre NB.SI des valeurs listées en AF et GRANDE.VALEUR() testé de l'autre côté.

Les valeurs possibles du tableau doivent être listées en AF et la formule doit être étendue suivant le nombre de valeurs différentes possibles (alimenter le si.multiple).

Bonne journée,
 

Pièces jointes

  • Recupérer valeur hors exclusion.xlsx
    19.8 KB · Affichages: 3

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Une proposition avec let :

=LET(
Exclusions; $AD$2:$AD$3;
Datas; $B2:$X2;
Série; NB.SI(Datas;Datas)*ESTNA(EQUIV(Datas;Exclusions;0));
Uniques;GRANDE.VALEUR(UNIQUE(Série;VRAI;FAUX);{1.2.3});
SIERREUR(SI(Uniques>0;INDEX(Datas;EQUIV(Uniques;Série;0));"");""))
 

Pièces jointes

  • Recupérer valeur hors exclusion.xlsx
    18.1 KB · Affichages: 5

xUpsilon

XLDnaute Accro
Bonjour Hasco,

Ca a l'air bien plus efficace en effet.
Je ne comprends pas la partie suivante par contre :
GRANDE.VALEUR(UNIQUE(Série;VRAI;FAUX);{1.2.3})
A quoi correspond {1.2.3} ? C'est une matrice qui te ressort la suite de la 1ere grande valeur puis la deuxième puis la troisième ?

Bonne soirée,
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

J'ai lu votre demande et quand j'ai vu qu'@xUpsilon traitait le problème avec les fonctions excel 365, je ne suis même pas allé voir votre version dans le titre , je n'avais pas vu votre version, excusez moi.
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Je n'ai pas le temps pour le moment mais on devrait pouvoir s'en sortir Let n'étant qu'un moyen de nommer les choses,
Et avec excel 2013 on faisait déjà des listes uniques par formules
 

Spinzi

XLDnaute Impliqué
Bonjour à vous 2,

@xUpsilon : oui je suis d'accord, surtout avec un code clé en main qui fonctionne =) malheureusement j'ai quelques restrictions.

@Hasco : j'ai essayé d'adapter une formule matricielle mais je n'arrive pas à la faire fonctionner sur une ligne plutot que sur une colonne mais oui, dans le fond, cela doit être proche.

Dans tous les cas merci à vous pour vous plancher sur le sujet,
Bonne journée
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…