Chaque semaine, découvrez de nouvelles astuces et bonnes pratiques pour devenir un expert !
Voir l'indexle 03-15-2021 07:52 AM
Alors, quel est le défi de cette semaine ?
Oui, après avoir réchauffé la semaine dernière et s'est bien armée par les ACE's insights sur la thématiques de la date, On pousse le défi au niveau supérieur avec LA FAMILLE LEBRUN 😉
Entrée/Sortie
Cette semaine, l'entrée est simplement une date.
L'objectif est donc d'utiliser les consignes pour déterminer les dates et les jours d'anniversaire des membres de la famille Lebrun.
Ma Solution
Ce challenge n'aura jamais eu une solution sans les consignes, c'est pourquoi j'ai commencé par définir les règles de gestion et par les organiser pour mieux comprendre la problématique et donc bien construire ma démarche analytique.
Cette carte mentale qui définit les relations avec mon point de départ ( la date d'anniversaire de Johanne ) et les étapes. Cela m'a montré aussi les types de traitement à réaliser comme expliqué dans l'infographie ci-après.
Les deux premières étapes étaient assez directes :
La troisième un peu moins 🙂. En fait, pour calculer la dates de vendredi qui suit la date d'anniversaire de Stéphane ( 2015.05.12 ) il fallait :
1. Connaître le jour de la semaine de cette date,
2. Connaître l'intervalle entre celle-ci et le vendredi qui suit.
Le défi pour moi était : "comment puis-je déterminer l'intervalle à ajouter pour définir la date cible" ?
J'ai trouvé sur la documentation Alteryx un super spécificateur qui rend une valeur numérique pour spécifier le jour de la semaine. J'ai donc utilisé cela pour définir l'intervalle et donc pour déterminer la date et le jour d'anniversaire de Juliette.
Je vous mets la fonction ci-après.
//Juliette est née le vendredi qui suit la naissance de Stéphane
if
ToNumber( DateTimeFormat([Stéphane],'%w',"Français")) < 5
then
DateTimeAdd([Stéphane], 5 - ToNumber( DateTimeFormat([Stéphane],'%w',"Français")),'day')
elseif
ToNumber( DateTimeFormat([Stéphane],'%w',"Français")) = 5
then
DateTimeAdd([Stéphane], 7 ,'day')
elseif
ToNumber( DateTimeFormat([Stéphane],'%w',"Français")) = 6
then
DateTimeAdd([Stéphane], 6 ,'day')
else Null()
endif
La suite s’articulait autour du nettoyage et de la mise en forme de données :
Si cela vous a plu, n’hésitez surtout pas à me le dire 😉. Vous pouvez aussi me dire s'il y a une autre/meilleure façon de relever le défi. Ceci n'est que ma solution.
À la semaine prochaine.
Cheers,
Amr
Merci @AMansour de nous avoir partagé ta démarche analytique !
Je conseille aussi à la communauté, ces articles de la série ACE's Insights d'@Ladarthur :