
Calculer l’écart entre 2 valeur quand les dates ne se suivent pas
Calculer l’écart entre 2 valeur quand les dates ne se suivent pas
Posté par Jean-Philippe sur 10 avril 2024 à 8h17Je souhaite trouver une mesure qui me permette de calculer l’évolution d’une valeur d’une enquête sur l’autre.
La difficulté sur laquelle je bloque, c’est que les dates des enquêtes ne se suivent pas de manière régulière.
Dans l’exemple en pièce jointe (j’ai isolé une seule question sur les 7 de l’enquête), vous pouvez constater que sur 1 an (de mars 23 à mars 24),
l’intervalle entre les enquêtes évolue entre 1, 2 et 3 mois.
Merci de votre aideJean-Philippe a répondu Il y a 11 mois, 1 semaine 2 Membres · 14 Réponses- 14 Réponses
Bonjour Jean-Philippe,
Aurais-tu la possibilité de mettre à disposition un fichier avec ces mêmes données en exemple ?
Bonjour David,
Merci de ton aide.
J’ai mis le fichier Test ecart.xlsx dans l’onglet document.
-
Cette réponse a été modifiée Il y a 11 mois, 4 semaines par
Jean-Philippe.
-
Cette réponse a été modifiée Il y a 11 mois, 4 semaines par
Bonjour Jean-Philippe,
Voici une approche avec Power Query en créant une nouvelle colonne avec la formule suivante :
<pre class=”language-markup”>
= Table.AddColumn(#"Type modifié", "Ecart avec précédent",
each
let
q = [Question],
d = [Posée le],
t = Table.SelectRows(#"Type modifié", each ([Question] = q) and ([Posée le] < d)),
dp = List.Max(t[Posée le])
in
try [Valeur] - Table.SelectRows(t, each ([Posée le] = dp)){0}[Valeur] otherwise null,
Int64.Type
)Une alternative en DAX serait la formule suivante. Mais ça ne fonctionne que si une seule valeur est sélectionnée pour [Posée le] et [Question]
Si plusieurs valeurs peuvent être sélectionnées il faudrait améliorer la formule
<pre class=”language-markup”>
Ecart avec précédent (DAX) =
VAR __date =
SELECTEDVALUE ( Tableau1[Posée le] )
VAR __question =
SELECTEDVALUE ( Tableau1[Question] )
VAR __questionsPrecedente =
CALCULATETABLE (
Tableau1,
Tableau1[Question] = __question,
Tableau1[Posée le] < __date
)
VAR __datePrecedente =
MAXX ( __questionsPrecedente, [Posée le] )
VAR __resultatPrecedent =
CALCULATE (
SUM ( Tableau1[Valeur] ),
Tableau1[Posée le] = __datePrecedente,
Tableau1[Question] = __question
)
VAR __result =
IF (
__resultatPrecedent = 0,
BLANK (),
SUM ( Tableau1[Valeur] )
- CALCULATE (
SUM ( Tableau1[Valeur] ),
Tableau1[Posée le] = __datePrecedente,
Tableau1[Question] = __question
)
)
RETURN
__result
Bonjour David,
Encore merci pour ton aide.
J’ai été pas mal pris ces derniers jours, je ne m’attèle seulement aux modicifactions.
J’ai bien ajouté la colonne dans Power Query avec la formule que tu m’as indiqué mais je n’obtiens pas de résultat chiffré mais “table”…
J’ai du faire une mauvaise manip ?
Bonjour Jean-Philippe,
Pourrais-tu me montrer la formule qui s’affiche dans la barre de formule ?
la voilà :
= Table.AddColumn(#”Type modifié”, “Ecart”, each Table.AddColumn(#”Type modifié”, “Ecart avec précédent”,
each
let
q = [Question],
d = [Posée le],
t = Table.SelectRows(#”Type modifié”, each ([Question] = q) and ([Posée le] < d)),
dp = List.Max(t[Posée le])
in
try [Valeur] – Table.SelectRows(t, each ([Posée le] = dp)){0}[Valeur] otherwise null,
Int64.Type
))Bonjour david,
j’espère que tout va bien.
Tu as pu trouver une explication stp ?
Bonjour Jean-Philippe,
Désolé de ne pas avoir répondu plus tôt, j’ai été assez occupé et je n’avais pas fait attention à tes réponses.
Dans la barre de formule de Power Query remplace ta formule par la formule suivante
<pre class=”language-markup”>
= Table.AddColumn(#”Type modifié”, "Ecart avec précédent",
each
let
q = [Question],
d = [Posée le],
t = Table.SelectRows(#"Type modifié", each ([Question] = q) and ([Posée le] < d)),
dp = List.Max(t[Posée le])
in
try [Valeur] - Table.SelectRows(t, each ([Posée le] = dp)){0}[Valeur] otherwise null,
Int64.Type
)Pas de souci, c’est déjà très gentil de m’accorder du temps.
Je teste et je te tiens au courant. Merci
David,
Il m’indique ça…
David,
Il m’indique ça…
et je ne peux pas valider la formule.
J’ai modifié les guillements qui me semblaient différents des formules précédentes et le résultats est le même = Une colonne avec table dedans.
Ah mais je constate que tu n’es pas au bon endroit. Tu essayes d’insérer ta formule dans la boite de dialogue d’insertion d’une colonne personnalisée. Tu n’es pas dans la barre de formule d’éditeur
Et ici #”Type modifié” correspond au nom de l’étape précédente. Tu dois l’adapter en conséquence
Super merci !
Connectez-vous pour répondre.