Requête : Transposer dans nouvelle colonne (Nombre de ligne variable)

Accueil – Le CFO masqué Forums Power Query Requête : Transposer dans nouvelle colonne (Nombre de ligne variable)

  • Ce sujet contient 3 réponses, 3 participants et a été mis à jour pour la dernière fois par SL, le il y a 10 mois.
4 sujets de 1 à 4 (sur un total de 4)
  • Auteur
    Articles
  • #60861
    Yuan
    Participant

    Bonjour à tous,

    Ce fichier regroupe un ensemble de rapports, séparés par une ligne *, les lignes a extraire sont celles indexées en première colonne.

    Je cherche à transposer les informations des 7 premières lignes de chacun de ces rapports en colonne.

    Mon problème est que les informations contenues dans ces cellules diffèrent en fonction des rapports, de plus le nombre de lignes indexées est variable selon les rapports et la date de l’export du fichier.

    Auriez-vous une idée pour écrire cette requête ?

    Merci à tous.

    Attachments:
    You must be logged in to view attached files.
    #60865
    Sophie Marchand
    Participant

    Bonjour,

    Je connais la réponse à votre question. On voit un exemple très semblable dans la formation Power BI (niveau 3). Mais je ne peux pas vous fournir de réponse sans avoir un fichier source… Donc, si votre fichier source est confidentiel, merci de créer un fichier source similaire avec des données fictives et de le partager ici. Je pourrai ensuite faire les transformations requises.

    En gros, l’approche serait de créer des nouvelles colonnes pour y extraire uniquement les données de même type, par exemple, les années, les semaines, les codes de secteurs, etc. Ensuite, il faudrait utiliser la fonction de remplissage vers le bas pour obtenir les bonnes informations sur chaque ligne.

    Une de ces colonnes serait pour les numéros (1,2,etc…) qui varient. Il s’agiraitt de copier la colonne 1 actuelle et de transformer le type de données en nombre entier. Toutes les autres lignes donneraient des erreurs et on pourrait les supprimer (les informations de ces autres lignes se trouveraient alors dans les colonnes créées précédemment et ne seraient donc pas perdues).

    Bref, comme vous pouvez le constater, essayer d’expliquer ces transformations sans fichier est plutôt ardu… Je vous invite donc à soumettre votre fichier exemple ou à suivre nos formations Power BI (niveau 2) et Power BI (niveau 3).

    Au plaisir,

    Sophie

    #60870
    Yuan
    Participant

    Bonjour,

    Merci pour votre retour et la description très claire de la manipulation, je ne vois pas comment s’assurer de la bonne transposition des informations dans la colonne 4, sur chaque rapport.

    Voici le fichier exemple de ce sujet, merci pour votre aide.

    Bonne journée.

    Attachments:
    You must be logged in to view attached files.
    #60878
    SL
    Participant

    Bonjour

    Voici un fichier avec une réponse en trois temps

    – un temps pour ajouter un index afin :
    – d’identifier chaque nouveau “dossier ” suivant l’index de la ligne “Année” qui est ensuite recopié vers le bas
    – d’identifier la ligne où apparaissent les en-têtes de vos colonnes : Réf inter., BUPC, Projet… (index 8 pour ligne 9 du csv car l’index commence à 0 )
    – d’identifier la ligne où apparaissent les en-têtes de vos colonnes : Type, RG Prêt, DPT Prêt… (index 12 pour ligne 13)

    – un temps pour traiter les en-têtes en utilisant les colonnes dynamiques avec l’option avancée “ne pas agréger”

    – un temps pour traiter les lignes que j’ai décomposé en 2 sous-étapes pour les lignes “réf. intern” et pour les lignes “type”. Dans cette étape je convertis en numérique les lignes en constatant que les 1, 2 ou 3 correspondent aux “Réf inter.” et que les 0 correspondent aux “Type” (à la ligne 45 du .csv)

    Puis une fusion de l’ensemble

    Cela demande sûrement quelques adaptations mais c’est vraiment rapide à mettre en place

    Cordialement

    Stéphane

    Attachments:
    You must be logged in to view attached files.
4 sujets de 1 à 4 (sur un total de 4)
  • Vous devez être connecté pour répondre à ce sujet.