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

XL 2013 comment trouver la xième valeur visible d'une liste filtrée ?

Pierre Gy

XLDnaute Nouveau
Bonjour à tous,
je sèche un peu... Je travaille encore en Excel 2013 (!) et je n'ai pas toutes les nouvelles fonctions...
J'ai une liste que je peux filtrer et je souhaite récupérer les (2 ou) 3 premières valeurs différentes du filtre (et non les (2 ou) 3 premières cellules visibles.
Par exemple, si j'ai coché dans le filtre Jacques, et Jean, je souhaite récupérer ces deux valeurs dans deux cellules distinctes (nécessaires pour autre chose ensuite).
Je suis parvenu à extraire une liste des valeurs uniques (sans la formule UNIQUE dont je ne dispose pas) de la liste entière, mais pas de la liste quand le filtre est actif.
Quelqu'un aurait-il une idée ?
Je voudrais faire ça sans macro, de sorte que l'activation du filtre suffise à actualiser les 3 cellules.
Déjà merci pour votre aide !
P.
 

Pièces jointes

  • liste filtrée.xlsx
    22.2 KB · Affichages: 9

mapomme

XLDnaute Barbatruc
Bonsoir @Pierre Gy ,

Pour ces cas, je ne m'embête plus . J'utilise une colonne auxiliaire (pour votre cas, dans le tableau en cellule C51). Les formules deviennent alors beaucoup plus simples et ordinaires (non matricielles).

la colonne ajoutée ( colonne D) contient une formule renvoyant le numéro de la ligne à condition que cette ligne soit visible (càd réponde aux conditions du filtre) et que la valeur de la colonne C soit la première occurrence au sein de la colonne C.
Formule en D52 à recopier vers le bas:
VB:
=SI((AGREGAT(3;1;C52)*(EQUIV(C52;LISTE;0)=LIGNE(C52)-51))>0;LIGNE(C52);"")

Ensuite en G25, indiquer le nombre N d'items différents que vous voulez afficher.

En G26, une formule indique le nombre total d'items différents en fonction du filtre actif.
VB:
=NB(D52:D73)
En G27, une formule (à recopier vers le bas) donne les N items différents en fonction du filtre actif.
VB:
=SIERREUR(SI(LIGNES($1:1)>$G$25; "";INDEX(C:C;PETITE.VALEUR(D$52:D$73;LIGNES($1:1))));"")

Modifiez le filtre en C51 (et /ou modifiez aussi N en G25) et voyez le résultat en colonne G.
 

Pièces jointes

  • Pierre Gy- liste filtrée- v1.xlsx
    17.7 KB · Affichages: 6
Dernière édition:

Pierre Gy

XLDnaute Nouveau
Bonjour,

Je viens un peu compliquer le problème : filtrer sur un autre colonne que celle dont on veut récupérer les valeurs.
J'ai une liste de clients avec le département qui gère ce client. Un même client peut être dans deux départements (pour deux affaires différentes par exemple). SI je filtre sur le département, la liste des clients filtrés n'est plus exacte, car un client peut déjà exister plus haut dans la liste non filtrée, et son nom n'apparaît dès lors plus.
EQUIV utilisé ne tient pas compte des lignes masquées.
Quelqu'un aurait-il une idée ?
Déjà merci !
 

Pièces jointes

  • Pierre Gy- liste filtrée- v2.xlsx
    23.4 KB · Affichages: 1

Pierre Gy

XLDnaute Nouveau
MERCI @mapomme, pour votre rapidité à répondre .
Si je ne filtre que sur la colonne client, ou si je filtre sur plusieurs départements (il y en a plus que 2 dans la réalité, contrairement à mon exemple), j'ai des doublons (les clients se trouvant dans plusieurs départements), ce que je veux éviter.
Je pourrais envisager de rédiger une petite macro qui supprime les doublons, mais je souhaite vraiment éviter cette solution (fichier à déployer chez des collègues).
Merci pour votre aide.
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…