Toutes mes réponses sur les forums

8 sujets de 1 à 8 (sur un total de 8)
  • Auteur
    Articles
  • en réponse à : Table. TransformColumns #129762
    ludo.regnier
    Participant

    Oui globalement en changeant d’approche (en évitant de pivoter dépivoter) je suis passé d’un temps de réponse de 19 minutes !!) à 6 minutes max. Ça devient opérationnel !

    en réponse à : Table. TransformColumns #129750
    ludo.regnier
    Participant

    Bonjour
    Merci Stéphane pour cette nouvelle réponse. J’avais effectivement commencé par dépivoter mes colonnes pour travailler avec Attribut et Valeur, mais comme j’ai de nombreuses colonnes à dépivoter puis re-pivoter et environ 10000 lignes dans ma table source je me retrouvais avec des performances très mauvaises. C’est pourquoi je cherchais une solution qui m’évite de dépivoter (pensant que c’est la raison principale des mauvaises performances). Un collègue m’a aidé à adapter la formule Table.ReplaceValue en l’intégrant dans une “List.Accumulate”. Voici le résultat avec une condition si null : “si valeur en colonne A est null, remplacer par la valeur en colonne A. 1, si valeur en colonne B est null, remplacer par la valeur en colonne B. 1” etc.
    Les colonnes contenant les valeurs à remplacer sont identifiées dans la liste col_a_remplacer de la fonction, et toutes les colonnes contenant les valeurs de remplacement sont nommées comme les colonnes à remplacer plus le suffixe “. 1”.
    La formule permet de complexifier la condition en utilisant la variable b par exemple.

    List.Accumulate( col_a_remplacer, ma_table_source, (state, current) => Table.ReplaceValue=(state,0, each Record.Field(_,current & “. 1”), (a, b, c) as number => if a = null then c else a, {current}))

    Il serait également possible de remplacer la condition
    if a = null then c else a
    par
    a?? c
    Je n’ai pas essayé
    bonne journée

    en réponse à : Table. TransformColumns #129695
    ludo.regnier
    Participant

    Bonjour
    Merci encore à Stéphane pour sa réponse. Je cherche maintenant à complexifier un peu ma requête :est-ce possible de rendre la colonne [M] paramétrable également ? En effet j’ai deux listes de colonnes qui fonctionnent par paire ([A] et [A. 1], [B] et [B. 1]) etc. et je souhaite faire un remplacement conditionnel : si valeur en colonne [A] <x alors [A] sinon [A] *[A. 1], si [B] <x alors [B] sinon [B] *[B. 1], si [C] <x alors [C] sinon [C] *[C. 1] etc pour l’ensemble des valeurs de la liste à transformer.

    Un grand merci par avance si vous pouvez m’aider.

    en réponse à : Table. TransformColumns #128994
    ludo.regnier
    Participant

    MERCI !! C’est exactement ce que je cherchais. Et c’est effectivement plus “léger” que les each liste de liste de Table. Transform Columns. 😁 Merci encore et bonne journée

    en réponse à : Ajouter jours ouvrés #124694
    ludo.regnier
    Participant

    Bonjour
    Je suis débutant ++sur power query mais la solution à laquelle je pense serait de créer une seconde table avec deux colonnes, la première contenant les jours de la semaine et la seconde les jours ouvrés correspondant (par exemple à jeudi correspond mardi ouvré ), puis croiser les deux tables pour récupérer la valeur de la seconde colonne de la seconde table.
    Sinon (et c’est pas bien de tricher !) j’ai posé votre question à ChatGPT et voici le code M proposé :let
    startDate = #table({“Date de départ”},{{“01/01/2021”}}),
    dateList = List.Dates(startDate[Date de départ], 3, #duration(1,0,0,0)),
    workDays = List.Select(dateList, each Date.IsWorkday( _ )),
    endDate = List.Last(workDays)
    in
    endDate
    Bon courage

    • Cette réponse a été modifiée le il y a 1 année et 3 mois par ludo.regnier.
    en réponse à : Promouvoir ligne en en-tête autre que la ligne 1 et + #103814
    ludo.regnier
    Participant

    Bonjour
    Est-ce que c’est toujours la troisième ligne qui doit être promue comme en-tête ? Est ce que la seconde ligne peut être supprimée ? Si oui pourquoi ne pas supprimer la seconde ligne puis promouvoir la première ligne en en-tête. Il existe des menus qui font cela directement.

    en réponse à : Agréger des colonnes variables #89705
    ludo.regnier
    Participant

    Bonjour

    Je viens de résoudre mon problème. Il me fallait créer une liste de valeurs correspondant aux occurences possibles du champ choisi en colonne, à laquelle j’associe la fonction List.Sum
    Puis passer cette liste en argument de la fonction Table.AggregateTableColumn.

    Avec les données fournies dans l’exemple la requête query ne présente pas d’intérêt : on pourrait directement utiliser la source de données pour créer un TCD qui présenterait les résultats de la même manière. En réalité mon fichier de données n’est pas homogène sur les colonnes de Niveaux. Certaines branches de l’arborescence s’arrêtent au niveau 2, d’autres vont jusqu’au niveau 8. Dans ce cas un TCD présentera des lignes “(vide)” du niveau 3 jusqu’au niveau 8 ce qui ne présente pas d’intérêt et alourdit la lecture. Si je masque les champs “(vide)” à partir du niveau 3, je ne vois plus les détails pour les cas où je dois descendre au niveau 8.
    La requête Query évite donc ce pb.

    Si cela intéresse qqn, éventuellement pour optimiser les requêtes voici le fichier opérationnel.
    Merci et bonne journée

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Agréger des colonnes variables #89671
    ludo.regnier
    Participant

    Bonjour Christian et merci pour ta réponse.
    Je suis conscient que ma question n’est pas limpide. Je ne peux pas livrer le fichier pour des questions de confidentialité, mais j’ai reproduit le principe recherché, dans le fichier joint.
    L’utilisateur doit choisir dans une liste déroulante (onglet Paramètres) un champ qui sera affiché en colonne et un autre qui sera consolidé.
    Le résultat attendu doit être présenté conformément à ce qui figure dans l’onglet Résultat, c’est à dire de manière arborescente.
    Je boque à l’étape Nombre Agrégé de l arequête Résultat, parce que je ne sais pas écrire le code avec des champs variables (si l’utilisateur fait un autre choix de champs que ceux que j’ai utilisés pour paramétrer la requête actuellement).
    Merci beaucoup si qqn peut m’aider.
    Bien à vous

    Attachments:
    You must be logged in to view attached files.
8 sujets de 1 à 8 (sur un total de 8)