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

Conception Discussion :

Power Query - Extraction dans une nouvelle colonne [XL-365]


Sujet :

Conception

  1. #1
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    janvier 2010
    Messages
    10 662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : janvier 2010
    Messages : 10 662
    Points : 25 468
    Points
    25 468
    Billets dans le blog
    32
    Par défaut Power Query - Extraction dans une nouvelle colonne
    Bonjour,
    Je suis en train d'automatiser le téléchargement d'extraits bancaires issus de fichier csv à l'aide de Power Query et je cherche à extraire dans une nouvelle colonne un groupe de chaîne de caractères séparés par des caractères espacés sans passer, tout au moins je l'espère, par le langage M

    Dans une colonne nommée ici Description, j'aimerais extraire tout ce qui se trouve avant la date, pour les obtenir dans une nouvelle colonne comme illustré dans la deuxième image)
    J'arrive à obtenir par fractionnement les chaînes qui précèdent le premier caractère espacé ce qui me satisfait à 80% mais ce serait mieux d'obtenir tout ce qui précède les dates. J'ai essayé de tricher en essayant un double caractère espacé mais il ne se passe rien et j'ai vérifié ce n'est pas une tabulation qui sépare la première partie et les dates.

    Illustration 1
    Nom : 210316 - dvp PowerQuery Extraction (colonne).png
Affichages : 39
Taille : 14,7 Ko

    Illustration 2
    Nom : 210316 - dvp PowerQuery Extraction (New Column).png
Affichages : 34
Taille : 11,7 Ko
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Ma dernière contribution : VBA - Les macros complémentaires

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 469
    Points : 50 501
    Points
    50 501
    Billets dans le blog
    92
    Par défaut
    Salut Philippe,

    On dirait que le texte avant la première date est régulier en nombre de caractères, ce qui me semblerait logique dans la construction de la valeur. Si c'est le cas, on peut extraire les x premiers caractères puis supprimer les espaces en trop

    Nom : 2021-03-16_131641.png
Affichages : 29
Taille : 8,2 Ko


    Cela dit, j'imagine que c'est trop simple et que tu y aurais pensé... De plus, je ne comprends pas ce que tu veux dire par "éviter le langage M". Dès lors que tu utilises une formule, tu utilises le langage M, et même si tu utilisais des outils d'interface, ce serait du langage M au final.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 469
    Points : 50 501
    Points
    50 501
    Billets dans le blog
    92
    Par défaut
    Si la longueur n'est pas régulière, tu peux chercher la chaine " " (deux espaces) et extraire ce qui est avant. Je pense que l'interface ne te permettra pas d'y arriver sans créer la formule... Bonne occasion pour s'y mettre

    Nom : 2021-03-16_135814.png
Affichages : 30
Taille : 8,6 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    janvier 2010
    Messages
    10 662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : janvier 2010
    Messages : 10 662
    Points : 25 468
    Points
    25 468
    Billets dans le blog
    32
    Par défaut
    Bonjour Pierre,
    On dirait que le texte avant la première date est régulier en nombre de caractères, ce qui me semblerait logique dans la construction de la valeur. Si c'est le cas, on peut extraire les x premiers caractères puis supprimer les espaces en trop
    Je m'étais focalisé sur le nombre de caractères espacés alors que tu as raison, il y a effectivement un nombre fixe de caractères à prendre à gauche. Quand on a la tête dans le guidon, on ne voit plus rien.
    Mon seul souci reste pour "Forfait" où là, la date est séparée par le caractère espacé et se trouve donc dans la partie gauche que j'ai conservée. J'ai réglé cela en faisant une seconde requête pour ce cas là.

    Si la longueur n'est pas régulière, tu peux chercher la chaine " " (deux espaces) et extraire ce qui est avant. Je pense que l'interface ne te permettra pas d'y arriver sans créer la formule... Bonne occasion pour s'y mettre
    C'est ce que j'avais fait au départ mais effectivement l'interface ne le permet pas alors qu'une chaine de plusieurs caractères est acceptée

    En ce qui concerne ta remarque au sujet du langage M, tu as absolument raison mais je ne suis pas encore suffisamment alerte avec ce langage et cela me demande plus de recherche que de cliquer sur les boutons de commande de l'interface.
    C'est comme tout, il y a l'apprentissage et ensuite l'expérience et je voulais tenter de faire ce travail en maximum deux heures.

    Merci pour tes réponses
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Ma dernière contribution : VBA - Les macros complémentaires

  5. #5
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    février 2010
    Messages
    7 398
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : février 2010
    Messages : 7 398
    Points : 14 094
    Points
    14 094
    Par défaut
    Bonjour à tous

    Dans l'onglet Ajouter une colonne, Colonne personnalisée et on donne le nom de la colonne et la formule

    PowerQuery est bien plus riche qu'Excel pour la manipulation de chaînes

    Sur 365 une nouveauté pour le fractionnement qui doit marcher dans ton cas : transition de non chiffre à chiffre
    Ensuite épurer la colonne de texte des espaces superfétatoires par clic droit transformer, supprimer les espaces
    Chris
    PowerQuery existe depuis plus de 10 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    janvier 2010
    Messages
    10 662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : janvier 2010
    Messages : 10 662
    Points : 25 468
    Points
    25 468
    Billets dans le blog
    32
    Par défaut
    Bonjour Chris,
    le "non chiffre à chiffre", je l'avais vu tout à l'heure dans la liste mais je ne voyais pas à quoi cela servait
    Donc finalement j'ai utilisé deux requêtes de fractionnement pour régler ce problème, la première en prenant les 37 premiers caractères suivi de non chiffre à chiffre et j'ai bien les éléments souhaités dans une colonne.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Ma dernière contribution : VBA - Les macros complémentaires

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 27/01/2012, 14h10
  2. Réponses: 1
    Dernier message: 11/02/2011, 11h44
  3. Réponses: 1
    Dernier message: 21/07/2009, 11h34
  4. extraire dans une nouvelle colonne le min issu de 3 autres colonnes
    Par ibilliau dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 06/01/2009, 08h48
  5. Réponses: 1
    Dernier message: 10/05/2006, 15h01

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