[Power Query] Importer et traiter des durées

Bonjour,

Dans un fichier mensuel, je traite des données, et en sort une requête donnant la durée.

Dans un fichier de récap annuelle, je viens récupérer cette requête (nommée T_Final dans chaque fichier mensuel), et j'essaie de traiter les données.

Cependant, si je convertis les durées calculées en nombre décimal, PQ me rajoute systématiquement 1 à la valeur convertie (donc, 24H supplémentaires)

A part une soustraction de #datetime(1899,12,31,0,0,0), je n'ai pas trouvé comment récupérer correctement cette donnée...

Le code de la requête annuelle :

let
    Source = Excel.Workbook(File.Contents("D:\doc\Excel\exemples\PQ\test import duree.xlsx"), null, true),
    T_Final_Table = Source{[Item="T_Final",Kind="Table"]}[Data],
    TransformDuree = Table.TransformColumns(T_Final_Table, {{"Duree", each _ - #datetime(1899,12,31,0,0,0)}})
in
    TransformDuree

Et le fichier mensuel me servant d'exemple...

Merci par avance, et bon appétit

Salut,

C'est bizarre moi j'ai pas le problème, enfin je retrouve bien les mêmes durées. Ca ne viendrait pas du type de la colonne "Duree" en duration qui n'est pas initialisé correctement/redéfini dans la requête ?

Requete de test (en local)

let
    T_Final_Table = Excel.CurrentWorkbook(){[Name="T_Final"]}[Content],
    #"Changed Type2" = Table.TransformColumnTypes(T_Final_Table,{{"Duree", type duration}}),
    #"Added Custom0" = Table.AddColumn(#"Changed Type2", "T_ini", each Duration.TotalHours([Duree])),
    #"Changed Type" = Table.TransformColumnTypes(#"Added Custom0",{{"Duree", type number}}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Changed Type",{{"Duree", type duration}}),
    #"Added Custom1" = Table.AddColumn(#"Changed Type1", "T_fin", each Duration.TotalHours([Duree]))
in
    #"Added Custom1"
image

Hi,

Merci pour le retour, mais le souci provient lors de l'import (les données ne sont pas dans le même classeur)

Il faut enregistrer mon fichier test, puis dans un nouveau classeur, importer cette requête (via le code fourni, en modifiant le répertoire)

Merci pour ton intervention.

Ah oui effectivement, je n'avais pas pensé que l'import pouvait différer de la table de base. Pas d'autre solution alors, désolé

Bonjour à tous !

Dans Excel la valeur 0 correspond à la date du 1/1/1900.

Dans M, cette valeur correspond à la date du 30/12/1899.

Soit un décalage d'une journée.

Ceci peut expliquer cela ?!

Hello JFL ,

Oui, c'est bien l'idée.

Et pour être plus précis : (afin de récupérer de l'erreur de l'année bissextile en 1900, socle d'Excel....)

image

Cependant, je ne m'explique pas pourquoi, dans le même fichier, l'import se fait correctement (réponse de saboh), et dans le cas en cause, on a 1 jour de plus...

J'ai signalé ce phénomène à µSoft, dans l'attente maintenant d'une réaction de leur part...

Merci pour ta participation

Bonjour à tous de nouveau !

Cependant, je ne m'explique pas pourquoi, dans le même fichier, l'import se fait correctement (réponse de saboh), et dans le cas en cause, on a 1 jour de plus...

Explication possible :

En chargeant le tableau, issu d'une requête, dans le même classeur, l'environnement (Excel ? PwQ ?) doit conserver certaines informations qui permettent à Power Query d'intégrer le point de départ adéquat.

Si la source est externe, le "lien" est rompu et Power Query intègre une donnée "biaisée" (exemple : 01/01/1900 08:51:45). Ce point d'ancrage (différent de celui de Power Query) a pour conséquence l'ajout d'une journée.

Re-,

C'est ce que je pense également, donc, pour moi, on peut considérer ce comportement comme un "Bug".

J'attends une réponse de la part de µSoft, et je transmettrai bien évidemment leurs éventuelles remarques.

Merci de nouveau

Rechercher des sujets similaires à "power query importer traiter durees"