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

  • Initiateur de la discussion Initiateur de la discussion Spinzi
  • 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 !

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

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
 
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

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

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,
 
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.
 
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
 
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
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…