soustraction dans une colonne

Accueil – Le CFO masqué Forums Power Query soustraction dans une colonne

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

    Bonjour,

    je souhaite soustraire le chiffre dans une colonne .

    13 – 11/09/23 – 13h00 – 125
    13 – 11/09/23 – 13h30 – 129 – différence 4
    13 – 11/09/23 – 14h00 – 132 – différence 3

    Voila un petit exemple pour une meilleure compréhension

    Je vous remercie par avance,

    HB

    #132651
    Nicolas 🇫🇷
    Participant

    Bonjour HB. Dans power query, le principe est d’ajouter une colonne avec un index commencant par 0 puis une autre avec un index commençant par 1. On fera ensuite une jointure avec la table sur elle-même avec les deux colonnes d’index comme clé. Il est ainsi possible de développer une deuxième colonne “valeur” correspondant à la ligne précédente. Il suffira d’ajouter une colonne pour soustraire les deux valeurs puis de supprimer les colonnes inutiles.

    Cdt

    Nicolas

    #132652
    Daniel
    Participant

    Bonjour hboisteau, Nicolas, le Forum,

    Je peux proposer cette solution, elle aussi sur base d’un index.
    Il suffit de changer le nom des intitulés de colonnes car non fourni dans le petit exemple.

    Début de la requête
    let
    Source = Excel.CurrentWorkbook(){[Name=”tabData”]}[Content],
    ModificationTypeDonnees = Table.TransformColumnTypes(Source,{{“ID”, Int64.Type}, {“Date”, type date}, {“Heure”, type time}, {“Montant”, Int64.Type}}),
    GroupLignesID = Table.Group(#”Type modifié”, {“ID”}, {{“FullTable”, each _, type table [Date=nullable datetime, #”ID”=nullable number, Valeur=nullable number]}}),
    IndexFullTable = Table.TransformColumns(GroupLignesID,{{“FullTable”, each Table.AddIndexColumn(_,”Index”,0,1)}}),
    AddColumnDifference = Table.AddColumn(IndexFullTable, “CalculPrevValue”, each let
    AllDataTable = [FullTable],
    PrevRowValue = Table.AddColumn(
    AllDataTable,”Dif”,
    each try AllDataTable[Montant] {[Index]} – AllDataTable[Montant] {[Index]-1} otherwise null)
    in PrevRowValue),
    DevelopperDifference = Table.ExpandTableColumn(AddColumnDifference, “CalculPrevValue”, {“Date”, “Heure”, “Montant”, “Dif”}, {“Date”, “Heure”, “Montant”, “Dif”}),
    ModificationTypeDonneesFinal = Table.TransformColumnTypes(DevelopperDifference,{{“Heure”, type time}, {“Date”, type date}, {“Montant”, Int64.Type}, {“Dif”, Int64.Type}, {“ID”, type text}}),
    SuppressionColonnes = Table.RemoveColumns(ModificationTypeDonneesFinal,{“FullTable”})

    in
    SuppressionColonnes
    Fin de la requête
    Cordialement
    Daniel

    #132655
    hboisteau
    Participant

    Bonjour le Forum,

    Merci beaucoup pour votre aide, cela fonctionne parfaitement.

    Le principe de créer deux index et de fusionner la requête sur elle même c’est astucieux.

    Merci encore

    HB

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