Accueil – Le CFO masqué › Forums › Power Query › difference de deux releve entres deux heures
- This topic has 5 réponses, 3 participants, and was last updated il y a 1 years et 9 months by Daniel.
-
AuteurArticles
-
16 février 2023 à 18 h 48 min #125680hboisteauParticipant
Bonjour le Forum,
je suis un peu en galère sur la création de mon power query. J’ai déjà par le passe appris a faire une comparaison de date avec (adddays) mais aujourd’hui je reviens vers au sujet d’une même séquence mais avec des heures.
En effet l’extraction des données se faisant toutes les 30 minutes je cherche a faire la soustraction d’une valeur avec une heure et minute (hm) contre cette même valeur mais moins 30 minutes
Je vous joint une fichier Excel pour une meilleure compréhension
HB
Attachments:
You must be logged in to view attached files.16 février 2023 à 19 h 02 min #125683Kim LeblancKeymasterBonjour,
Vous pourriez peut-être vous inspirer de la première partie de cet article:
Power BI – Vous rencontrez des problèmes avec l’addition des heures?
Bien que l'exemple soit fait avec Power BI, la première partie concerne Power Query qui est le même outil dans les 2 applications.Au plaisir,
Kim
17 février 2023 à 8 h 30 min #125702hboisteauParticipantMerci beaucoup pour votre réponse, mais malheureusement je ne veux pas additionner ou soustraire des heures, minutes ou secondes mais soustraire des résultats qui sont produits toutes les 30 minutes afin de produire un résultat.
HB
17 février 2023 à 13 h 42 min #125740DanielParticipantBonjour hboisteau, le Forum,
Dans l’exemple donné, les heures sont bien toutes les trente minutes mais sur des jours différents, donc en prenant la date et l’heure on peut obtenir le résultat escompté (seul problème pour obtenir exactement ce résultat, j’ai du gardé la colonne Date).
let
Source = Excel.CurrentWorkbook(){[Name=”Tableau1″]}[Content],
#”Type modifié” = Table.TransformColumnTypes(Source,{{“Date”, type datetime}, {“N°Mas”, Int64.Type}, {“Valeur”, Int64.Type}}),
GroupLignesNMas = Table.Group(#”Type modifié”, {“N°Mas”}, {{“FullTable”, each _, type table [Date=nullable datetime, #”N°Mas”=nullable number, Valeur=nullable number]}}),
IndexFullTable = Table.TransformColumns(GroupLignesNMas,{{“FullTable”, each Table.AddIndexColumn(_,”Index”,0,1)}}),
AddColumnNextValue = Table.AddColumn(IndexFullTable, “CalculNextValue”, each let
AllDataTable = [FullTable],
NextRowValue = Table.AddColumn(
AllDataTable,”NextValue”,
each try AllDataTable [Valeur] {[Index]+1} otherwise null)
in NextRowValue),
ListeofSingleTables = Table.Combine( AddColumnNextValue[CalculNextValue],{“Date”,”N°Mas”,”Valeur”,”NextValue”}),
CalculEcart = Table.AddColumn(ListeofSingleTables, “Ecart”, each [NextValue]-[Valeur]),
TriDesLignesNMasEtDates = Table.Sort(CalculEcart,{{“Date”, Order.Ascending},{“N°Mas”, Order.Ascending}}),
SuppressionColonnes = Table.RemoveColumns(CalculEcart,{“NextValue”}),
FiltreLignesNulles = Table.SelectRows(SuppressionColonnes, each ([Ecart] <> null))in
FiltreLignesNullesCi-joint le fichier avec la requête ci-dessus.
Cordialement
DanielAttachments:
You must be logged in to view attached files.22 février 2023 à 13 h 21 min #125905hboisteauParticipantBonjour Daniel,
Merci pour ta reponse qui fonctionne tres bien je t’en remercie.
Maintenant pourrais-je encore abuser pour compremdre comment faire avec plusieurs valeurs.
Je rejoins le fichier excel modifier
Encore merci a tous,
Attachments:
You must be logged in to view attached files.23 février 2023 à 12 h 51 min #125948DanielParticipantBonjour hboisteau, le Forum,
Pour répondre à la demande, par rapport aux données fournies, voici deux propositions :
1ère solution (voir l’exemple 2), assez simple dépivoter les colonnes contenant les valeurs ce qui nous donne une colonne Attribut contenant les noms (Valeur 1, Valeur 2, Valeur 3) et une colonne Valeur contenant les différents nombres. Ensuite, pour les étapes suivantes on peut repartir de l’exemple que j’ai donné dans un précédent post.
2ème solution : (voir l’exemple 3), je me suis inspiré d’une réponse fournie par Stéphane Lorin (merci à lui).
En fait, avec un requête contenant les données d’origine, une 2ème calculant les écarts et une 3ème regroupant les deux précédentes, on obtient bien le résultat. Peut-être que d’autres solutions plus optimales seront proposées.
La présentation des données dans les différents exemples, dépend surtout de l’utilisation des données dans un tableau de bord, je pense qu’une présentation sous la forme du 2ème exemple se prête mieux à des synthèses (matrices dans Power BI par exemple ou tableaux croisés dynamiques dans Excel).
Voir fichier ci-joint (hboisteau_1-1.xlsx). autre fichier joint par erreur
Cordialement
DanielAttachments:
You must be logged in to view attached files. -
AuteurArticles
- Vous devez être connecté pour répondre à ce sujet.