Passage lignes non délimitées en colonnes

Accueil – Le CFO masqué Forums Power Query Passage lignes non délimitées en colonnes

  • Ce sujet contient 4 réponses, 3 participants et a été mis à jour pour la dernière fois par Stéphane Lorin, le il y a 2 années et 7 mois.
5 sujets de 1 à 5 (sur un total de 5)
  • Auteur
    Articles
  • #94826
    jdzero
    Participant

    Bonjour à toutes et tous,

    Je récupère depuis une interface des données de candidats mises bout à bout, et j’aimerais structurer tout ça en utilisant Power Query.

    J’ai mis une capture avec des données inventées, mais qui reprend le problème : le nombre de lignes pour un candidat n’est pas fixe (parfois l’adresse est sur 2 lignes, parfois 3…).
    Le but étant au final de regrouper les infos dans les bonnes colonnes, et d’arriver au résultat du tableau de droite.

    Quelqu’un aurait-il une idée ?
    Merci beaucoup.

    Jérôme.

    Attachments:
    You must be logged in to view attached files.
    #94838
    Stéphane Lorin
    Participant

    Bonjour

    voir une proposition en PJ, je n’ai pas le temps d’expliquer chaque étape, je vous laisse regarder et revenir vers moi au besoin.
    l’idée de base est que la ligne Age est la dernière de chaque candidat

    Stéphane

    Attachments:
    You must be logged in to view attached files.
    #94857
    Pierre Forest
    Participant

    L’idée reste la même que la solution précédente.

    – Il faut ajouter une colonne personnalisée permettant de décrire le contenu du champ, Transposer les lignes en colonnes et nettoyer le contenu.

    – Pour décrire le contenu de tout ce qui comporte un “:” (Email:, Age:, Mobile:, etc…) ça reste
    assez facile en utilisant la fonction “Text.Contains”.

    – Pour les autres contenus, ce sewra soit un nom, soit une partie de l’adresse
    Ce qui distingue le nom des autres champs semble être le fait qu’on a des majuscules jusqu’au
    premier blanc (DUPONT Anne).
    Avec la fonction Text.BeforeDelimiter on peut extraire tout ce qui se trouve avant le premier
    blanc (” “) et vérifier s’il est en majuscules.
    Si c’est le cas et que le contenu n’est pas des chiffres, on peut assumer que c’est le nom et
    tous les autres champs restants seront une partie de l’adresse.

    – Ensuite, il faudra ajouter une étape “Transposer” (de l’onglet transformer) pour transformer les lignes en colonnes.

    – L’étape suivante consiste à nettoyer le contenu.
    Pour passer d’un contenu “Age: 40” à un contenu “40”.
    Le principe consiste à créer une nouvelle colonne personnalisée en utilisant la fonction
    “Text.AfterDelimiter” pour extraire le contenu après le “:”

    – La dernière étape consiste à enlever les colonnes dont on n’a plus besoin et c’est prêt!

    #94864
    jdzero
    Participant

    Bonjour Stéphane, bonjour Pierre

    Merci beaucoup Stéphane pour la proposition, ça fonctionne très bien.
    Je me doutais bien qu’il fallait utiliser l’âge comme “repère” pour aller chercher les ligne d’adresse par dessus, mais je n’arrivais pas à concrétiser ça…maintenant c’est clair !

    J’ai juste ajouté qques étapes à la fin de la requête pour bien “ranger” les adresses : une colonne avec les n° et noms de rues, une avec les compléments d’adresse, une avec CP etc.

    P.S: Merci Pierre également ! Je n’ai pas encore approfondi votre solution mais je la teste dès que je peux.
    Un grand merci en tout cas !

    • Cette réponse a été modifiée le il y a 2 années et 7 mois par jdzero.
    #94866
    Stéphane Lorin
    Participant

    Très bien, merci du retour
    Bon courage pour la suite de votre projet
    Stéphane

5 sujets de 1 à 5 (sur un total de 5)
  • Vous devez être connecté pour répondre à ce sujet.