Free Trial

Blog

Les analyses et les idées des plus grands esprits de l'analyse.
TIPS de la semaine

Chaque semaine, découvrez de nouvelles astuces et bonnes pratiques pour devenir un expert !

Voir l'index
mathieuf
Alteryx
Alteryx

Contexte et objectifs :

 

Je dispose de 2 données de dates et je souhaite connaitre le nombre de jours ouvrés entre ces 2 dates.

 

mathieuf_0-1638546418289.png

 

Je vais donc compter le nombre de jours entre ces 2 dates en supprimant les week-ends, les jours fériés et les jours de fermeture personnalisable s'il y en a.

Pour obtenir le résultat suivant :

 

mathieuf_1-1638546592374.png

 

Et pour que le tout soit réutilisable (et oui on soigne son impact carbonne !), je vais en faire une macro que tous mes utilisateurs pourront consommer 😎

 

Etape 1 : Suppression des week-end

 

Pour commencer, je rajoute un identifiant à chacune de mes lignes pour les tracer plus facilement.

 

mathieuf_0-1638547431208.png

Ensuite, je crée toutes les dates intermédiaires (autant de lignes que de dates) à l'aide de l'outil Générer les lignes.

Je crée un nouveau champ qui contiendra la date de chaque jour entre les 2 bornes.

 

mathieuf_1-1638547571125.png

 

Extrait du résultat :

 

mathieuf_2-1638547599953.png

 

Je crée ensuite une formule pour connaitre le jours de la semaine

 

mathieuf_3-1638547687683.png

 

Extrait du résultat :

 

mathieuf_4-1638547717292.png

 

Il ne me reste plus qu'a filtrer les week-end :

 

mathieuf_5-1638547756583.png

 

Etape 2 : Suppression des jours de fermeture personnalisés

 

Pour la suppression des jours de fermetures, nous allons proposer aux utilisateurs d'entrer une liste de jours que nous allons Joindre à notre flux précédent.

 

L'entrée L est notre sortie de flux avec suppression des WEs et l'entrée R la liste des jours de fermeture.

En utilisant la sortie L, nous excluons les jours de fermeture CQFD 😉

mathieuf_0-1638548465185.png

 

Etape 3 : Suppression des jours fériée

 

Pour supprimer les jours fériés, nous allons procéder différemment.

Ne souhaitant pas réinventer la roue, je vais utiliser des données provenant de l'Open Data mises à disposition par api.gouv.fr (ça me semble assez fiable 😜).

 

Je dispose grâce à cette API des données sur les jours fériés sur les 20 dernières années et les 5 prochaines.

il est également possible de filtrer sur certaines zones :

 

mathieuf_0-1638549415671.png

Ou sur une année précise :

 

mathieuf_1-1638549442007.png

 

 

Fiable et sans maintenance, que demander de plus !

 

Un jeu d'enfant pour Designer

 

Je vais utiliser 3 outils dans Designer : Saisie de texte, Télécharger et Interpréter JSON

 

mathieuf_2-1638549528192.png

L'outil de saisie de texte contient le lien vers les données.

L'outil Télécharger utilise le lien pour obtenir les données. J'utilise l'action GET :

 

get.JPG

 

Enfin l'Interpréteur de JSON, structure les données pour faciliter le travail. Voici ce que nous obtenons en sortie :

 

mathieuf_3-1638549776770.png

 

Pas mal sans donnée et presque sans configuration !

 

Je ne conserve ensuite que les dates présentent dans la colonne JSON_Name à l'aide d'une selection et je les convertis en DateHeure.

 

La touche finale est une jointure avec notre flux de l'étape 2 et l'étape 3 :

 

mathieuf_4-1638549939100.png

En utilisant la sortie L, nous excluons les jours fériés CQFD 😉.

 

Etape 4 : On compte et le tour est joué

 

Il ne nous reste plus qu'à compter le nombre de jours (nombre de lignes) par identifiant, et oui il pourrait y avoir plusieurs lignes dans le jeu de données initial !

 

Une aggrégation et une jointure avec le flux de données avant les calculs et voilà le travail.

 

mathieuf_1-1638550372977.png

 

 

mathieuf_0-1638550275792.png

 

Etape 5 : La touche finale

 

On choisi une jolie icône pour la macro :

 

mathieuf_2-1638550491248.png

 

On documente son outil :

 

mathieuf_3-1638550543323.png

 

On explicite les paramètres attendus :

 

mathieuf_4-1638550602505.png

 

Et on peut même personaliser ses ancres :

 

mathieuf_5-1638550661301.png

 

Étiquettes