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

Extraire-une-liste-sans-doublon-avec-formule-Matricielle

richard31

XLDnaute Occasionnel
Bonjour

Voilà , j'utilise une formule complexe matricielle qui est capable d'extraire les valeurs d'une colonne sans doublons. Quand il faut obligatoirement passer par une formule cela doit être automatique. Cela peut aider des personnes donc ^^

j'utilise donc cette formule:

=INDEX(Ma_Colonne;PETITE.VALEUR(SI(FREQUENCE(SI(Ma_Colonne<>"";EQUIV(Ma_Colonne;Ma_Colonne;0)); LIGNE(Ma_Colonne)-LIGNE($B$2)+1);LIGNE(Ma_Colonne)-LIGNE($B$2)+1);LIGNES(I$2:I2)))

B2 par la première cellule de votre colonne où il y a les doublons
I2 par la cellule dans laquelle vous voulez voir le résultat (normalement écrire la référence de la cellule du résultat dans la formule de calcul de cette même formule entraîne une référence circulaire mais pas dans le cas d’une formule matricielle)


Remplacer "Ma_Colonne" par la plage de cellule qui contient les données que vous voulez extraire et il est important que les données soient fixes (avec "$") exemple en prenant en compte que les données soient en colonne D et le résultat désiré à partir de la cellule F3:

=INDEX=INDEX($D$2:$D$1000;PETITE.VALEUR(SI(FREQUENCE(SI($D$2:$D$1000<>"";EQUIV($D$2:$D$1000;$D$2:$D$1000;0)); LIGNE($D$2:$D$1000)-LIGNE($D$2)+1);LIGNE($D$2:$D$1000)-LIGNE($D$2)+1);LIGNES(F$3:F3)))



Règles-de-modification-des-formules-matricielles:

https://support.office.com/fr-fr/article/Règles-de-modification-des-formules-matricielles-8a80c2c1-44c1-42c3-88c1-37a3a7c2d367


Si vous avez entré une formule de tableau à cellule unique, sélectionnez la cellule, appuyez sur F2, apportez vos modifications et appuyez sur

Ctrl + Maj + Entrée...

Si vous avez entré une formule matricielle à plusieurs cellules, sélectionnez toutes les cellules qui contiennent, appuyez sur F2, puis suivent

les règles suivantes :

Vous ne pouvez pas déplacer les cellules individuelles contenant votre formule, mais vous pouvez les déplacer en tant que groupe. Les références

de cellule dans la formule changeront en même temps. Pour les déplacer, sélectionnez toutes les cellules, appuyez sur Ctrl+X, sélectionnez le

nouvel emplacement et appuyez sur Ctrl+V.
 

richard31

XLDnaute Occasionnel
Bonjour Richard,
Merci pour la formule, j'en avais déjà une, mais sans la fonction fréquence que ne sais pas manipuler : j'ajoute ça à mon coffre aux trésors Download.
Cordialement
Je serai preneur si tu as une autre formule qui fonctionne pour ce genre de chose. Celle - là j'avoue fonctionne très bien même si elle parait complexe. Quand on arrive à l'utiliser elle est puissante ...
 

zebanx

XLDnaute Accro
Bonjour Richard31, Bonjour Dugenou

En matriciel (et testé sur une colonne et plus de 60000 lignes), la formule de DUGENOU (hé oui !) vu ce matin sur le site (dernier fichier) parait un peu plus simple. J'avais oublié de "liké", c'est fait comme ça !
https://www.excel-downloads.com/threads/renvoi-une-valeur-selon-5-critères.20019202/#post-20141854

Sinon Nicole B. a fait un remarquable boulot sur le sujet en VBA très récemment.
https://www.excel-downloads.com/threads/identifier-compter-les-doublons-et-ne-retenir-que-la-plus-grande-récurence.20019427/#post-20142057

Cdlt
thierry
 

Alext21

XLDnaute Nouveau
Bonjour,

je souhaite appliquer le cas ci-dessus pour 70 colonnes et afficher la liste sans doublons dans une seule colonne (sachant qu'il peut y avoir énormément de cellules vides).

Je vous envoie un exemple en moins volumineux pour principe.

Pouvez-vous m'aider svp ???

Merci d'avance
 

Pièces jointes

  • Exemple pour formule matricielle.xlsx
    14.1 KB · Affichages: 84

Alext21

XLDnaute Nouveau
Bonjour,

ta fonction perso est vraiment top.

Merci de répondre aussi vite !!!

Pour info, je cherchait une solution depuis quasi 2 jours ... et hop, résolu !!! (je ne suis pas un dieu en VBA ni en fonction matricielle ...).

Merci encore, ces forums sont vraiment super pour trouver son bonheur.

A+
Alext21
 

R@chid

XLDnaute Barbatruc
Supporter XLD
Bonjour @ tous,
en cas de grandes plages avec des milliers de lignes, le VBA ou les Fonction Perso restent la meilleur solution, c'est plus rapide.
Tu peux toutefois installer MoreFunc qui ajoute plus de fonctions à Excel. et profiter de la fonction VALEURS.UNIQUES().

Tu peux ajouter aussi cette formule matricielle à ton dictionnaire.
Voir PJ

Si tu veux faire une extraction sans doublons avec tri Coirssant/Décroissant, tu peux nous le demander et on va te faire une formule.



Cordialement
 

Pièces jointes

  • Richard31_ExtractionSansDoublons.xlsx
    11 KB · Affichages: 173

laurentla69

XLDnaute Nouveau
Bonjour,

Avec fonction perso (très rapide)

Boisgontier
http://boisgontierjacques.free.fr

Merci infiniment pour cette fonction!
Par contre je souhaiterai l'inclure dans mon fichier excel, afin de la faire tourner sur mes plages de cellules qui sont dispatchées sur plusieurs colonnes non contigues.
Comment puis-je la récupérer? je n'arrive même pas à modifier les plages dans le fichier joint, ça me dit impossible de modifier une partie de matrice
Veuillez m'excuser je me débrouille mais je ne connais pas toutes ces astuces !

Cordialement
LL
 

richard31

XLDnaute Occasionnel
Il suffit que tu créé une nouvelle feuille , crée un nouveau tableau, tu y copie toutes les données des cellules qui t'intéresse (tu vas recopier que les entrées qu'il te faut) et faire ensuite tourner la formule en sélectionnant la plage du nouveau tableau créé et le tour est joué !
 

laurentla69

XLDnaute Nouveau

Merci pour ta réponse

Tu veux dire dans ce même fichier excel joint par BOISGONTIER où y a la formule?

Deux problèmes :
- mon jeu de données est en fait dans un premier onglet qui est au quotidien alimenté et donc grossit au fur et à mesure. Une série d'onglets suit ce jeu de données qui est dans le premier onglet pour l'analyser, faire des graphiques étc... tous ces onglets sont automatisés pour que l'analyse se mette à jour en temps réel à chaque ajout de ligne dans le jeu de données. Du coup pas possible d'intégrer tout ça dans un nouveau excel, trop long puis dans les formules ça modifie le chemin pour indiquer comme source le fichier initial...
- j'ai l'impression en fait que la formule perso de BOISGONTIER ne fonctionne que pour une seule zone (lignes+colonnes contiguës), sauf que pour extraire ma liste sans doublon (donc l'idéal serait comme le reste que cela se mette à jour en temps réel avec l'ajout de données), mon jeu de données concerne 25 colonnes qui sont espacées avec entre elles d'autres données...

Je ne sais pas bien si je m'explique clairement vu que je suis novice sur le forum, peut être devrais-je joindre un fichier, le voici en PJ, j'ai enlevé la plupart du jeu de données et les autres onglets car cela contient des infos patients.

Merci infiniment
 

Pièces jointes

  • test.xlsm
    104.7 KB · Affichages: 30

richard31

XLDnaute Occasionnel
Voici une idée
Il suffit d"appuyer sur le bouton "EXTRAIRE"une boîte de dialogue apparaîtra pour vous rappeler de sélectionner la plage de données que vous souhaitez utiliser. Et puis cliquez OK, une autre boîte apparaîtra pour vous permettre de choisir un endroit pour mettre le résultat
 

Pièces jointes

  • VBA EXTRACTION SANS DOUBLONS PLUSIEURS COLONNES.xlsm
    114.1 KB · Affichages: 51

Discussions similaires

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