IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Récupérer une liste avec valeurs uniques depuis une colonne


Sujet :

Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Par défaut Récupérer une liste avec valeurs uniques depuis une colonne
    Bonjour,
    Je rencontre actuellement un petit problème (de débutant je suppose).
    J'ai une colonne constituée de texte disons
    titi
    toto
    titi
    titi
    tata
    toto

    Et j'aimerais utiliser une fonction sur cette colonne pour obtenir dans une seule cellule la concaténation des valeurs uniques (non vides) séparées par une virgule.
    Soit pour l'exemple de ma colonne: titi, toto, tata

    Est-ce possible via une fonction?
    Merci d'avance,

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Non, ce n'est pas une question de débutant. C'est même une formule compliquée et matricielle que tu demandes. En attendant que je l'écrive, tu peux te servir de :
    Onglet Données, Supprimer les doublons.

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Si ta liste de noms est en A1:A100, en B1, écris :

    =A1

    En B2 et à recopier vers le bas, formule matricielle (à valider avec Ctrl+Maj+Entrée) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ==SIERREUR(INDEX($A$1:$A$100;EQUIV(0;NB.SI($B$1:B1;maliste);0));"")

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Par défaut
    Merci Daniel mais en fait ce n'est pas cela que je veux obtenir. Je veux le résultat du tri dans une seule cellule (les uniques séparés par des virgules), comme dans mon exemple.

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    D'accord. Il n'y a pas de formule pour ça. Il faut écrire une fonction personnalisée. Je n'ai pas le temps avant ce soir, mais peut-être un autre répondeur pourra le faire.

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Mets ce code dans un module standard :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function Concat(Plage As Range) As String
        Dim Dico As Object, Txt As String, C As Range
        Application.Volatile
        Set Dico = CreateObject("Scripting.Dictionary")
        Txt = ""
        For Each C In Plage
            If Not Dico.exists(C.Value) Then
                Dico.Add C.Value, C.Value
                Txt = Txt & ", " & C.Value
            End If
        Next C
        Concat = Right(Txt, Len(Txt) - 2)
    End Function
    pour l'utiliser, mets dans une cellule :

    ou la plage que tu soouhaites.

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/01/2015, 12h14
  2. Réponses: 3
    Dernier message: 14/08/2012, 10h24
  3. [HQL] sélectionner des valeurs depuis une liste de valeurs
    Par nouraty dans le forum Hibernate
    Réponses: 4
    Dernier message: 18/06/2012, 16h23
  4. Requête depuis une liste de valeurs
    Par zoaax dans le forum Langage SQL
    Réponses: 6
    Dernier message: 30/06/2009, 11h04
  5. [MySQL] requête avec une contrainte d'exclusion portant sur une liste de valeurs
    Par vincounet dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/08/2008, 14h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo