Comment comparer les années N et N-1 sur Power BI ? Notre Expert Julien vous explique tout…

Trouver les bons indicateurs de suivi est souvent une part importante dans la mise en place d’un tableau de bord. Mais soyons honnête, on ne révolutionne pas la définition des indicateurs utiles à chaque nouveau tableau et certains peuvent donc être communs à plusieurs métiers. L’un des plus courant est le calcul de l’évolution entre deux périodes. Pour l’exemple, nous allons partir d’une comparaison simple de la population française en 2019 avec la population de l’année précédente. 

Pour cela, nous allons partir d’une première mesure qui calcule notre population pour l’année 2019. La table de référence nommée « Recensement » est la suivante :

De manière simple, nous pouvons créer la mesure « Population_2019 » comme suit :

Population2019 = CALCULATE(SUM(Recensement[Population]);CALENDRIER[ANNEE]=2019)

Ok, mais vous comprendrez je pense la limite d’une telle mesure. Nous sommes bientôt en 2020 et si l’on veut suivre l’année N comme étant l’année courante, la mesure précédente ne se mettra pas à jour. L’idée est de rendre cette mesure plus dynamique. Nous allons donc utiliser le principe de variable au sein d’une mesure et définir la mesure « Population_N » qui considérera uniquement l’année en cours :

PopulationN = VAR Annee = YEAR(TODAY())
RETURN CALCULATE([PopulationTotale];CALENDRIER[ANNEE]=Annee)

Pour bien comprendre la mesure précédente : nous définissons la variable « Annee » comme étant l’année de la date du jour. Il faut ensuite passer à la ligne suivante par la combinaison de touches « MAJ+ENTRÉE » et commencer la ligne de calcul par la commande « RETURN ». Vous retrouvez ensuite une structure qui vous sera familière en considérant que j’ai au préalable défini la mesure « PopulationTotale » comme suit :

PopulationTotale = SUM(Recensement[Population])

Nous pouvons donc maintenant passer au calcul de notre mesure sur l’année N-1. Très simplement, il suffira de soustraire une unité à l’année filtrée :

Population_N-1 = VAR Annee = YEAR(TODAY())-1
RETURN CALCULATE([PopulationTotale];CALENDRIER[ANNEE]=Annee)

La méthode sera néanmoins différente si nous souhaitons avoir l’année précédente de celle qui est sélectionnée. Pour ce faire, nous allons faire appel à la fonction DAX « DATEADD ». D’autres fonctions existent pour faire cela comme par exemple la fonction « SAMEPERIODLASTYEAR ». Je préfère néanmoins la première qui nous offre un peu plus de souplesse dans son paramétrage. Nous pourrons ainsi décaler une mesure dans le temps en avant ou en arrière, selon un intervalle choisi (jour, mois, trimestre, année) et d’un nombre d’intervalle variable. Ainsi, ma mesure « PopulationSelect_N-1 » pourra se définir comme suit :

PopulationSelect_N-1 = CALCULATE([PopulationTotale];DATEADD(CALENDRIER[JOUR];-1;YEAR))

Nous pouvons alors obtenir les graphiques suivants :

La page présentée ci-dessus offrira la possibilité de s’intéresser d’une part à l’année en cours quel que soit le contexte de la page tout en permettant à l’utilisateur de fouiller l’historique de ses données.

Nous pourrons à partir de là calculer une évolution en termes de pourcentage d’une année sur l’autre. Les mises en forme associées pouvant être intéressantes à regarder en détails, je vous réserve cela pour la prochaine fois.

Voila qui termine cet article « Comparer N et N-1 sur Power BI », merci d’être resté jusqu’au bout et à bientôt !