Comment créer une échelle de temps flexible pour un diagramme de Gantt dans Google Sheets

Dans cet article, nous allons apprendre à créer une échelle de temps flexible pour un diagramme de Gantt dans Google Sheets. L’approche est la suivante.

À l’aide d’une liste déroulante, vous pouvez passer d’une unité de temps à une autre. Cela comprend les heures, les jours, les semaines, les quinzaines, les mois, les trimestres, les semestres et les années.

Flexible Timescale for Gantt Chart in Action

Imaginons que vous souhaitiez afficher les barres de Gantt par semaine, et non par jour. Dans ce cas, vous pouvez sélectionner l’unité souhaitée dans la liste déroulante. La formule personnalisée ajustera ensuite l’échelle de temps en conséquence.

Je vais également partager avec vous la formule du diagramme de Gantt. Cependant, il est préférable d’utiliser des unités de temps plus courtes, car les barres des tâches plus courtes pourraient ne pas apparaître dans des unités de temps plus grandes.

Voyons comment créer une échelle de temps flexible pour un diagramme de Gantt dans Google Sheets.

Création d’une liste déroulante contenant les unités de temps

Ma formule prend en charge les unités suivantes :

  • Heures
  • Jours
  • Semaines
  • Quinzaines
  • Mois
  • Trimestres
  • Semestres
  • Années

Nous allons d’abord créer une liste déroulante dans la cellule B1 pour sélectionner les unités.

  1. Copiez les unités ci-dessus.
  2. Allez dans Données > Validation des données.
  3. Plage de cellules : B1.
  4. Critères : Liste d’éléments. Insérez les unités copiées.
  5. Cliquez sur Enregistrer.

Plus tard, notre formule d’échelle de temps flexible dans la cellule E3 générera l’unité pour le diagramme de Gantt sur la ligne 3 (E3:3) en fonction de la valeur sélectionnée dans la cellule B1.

Autres entrées pour générer une échelle de temps flexible pour le diagramme de Gantt

Nous devons également indiquer le nombre d’unités requis dans la cellule B2 et la date de début du projet (au format DateTime) dans la cellule B3.

Pour les besoins de test, vous pouvez saisir 14 dans la cellule B2 et la date 01/07/2021 00:00:00 dans la cellule B3.

Dans la cellule B3, incluez la composante temps comme l’une de nos unités, car notre échelle de temps flexible est en « heures ».

Note 1 :
Pour obtenir dynamiquement le nombre d’unités requis (ici, la valeur de la cellule B2), nous pouvons trouver la différence entre la date de début du projet et la date de fin du projet. Le problème est que nous devons prendre en compte l’unité dans la cellule B1. Pour l’instant, nous entrerons manuellement la valeur B2. Mais plus tard, je fournirai également cette formule.

Drop-down for Units and Basic Inputs

Nous avons terminé les trois étapes essentielles suivantes pour générer l’échelle de temps flexible pour le diagramme de Gantt dans Google Sheets :

  1. Création d’une liste déroulante dans la cellule B1.
  2. Saisie du nombre d’unités à générer dans la cellule B2.
  3. Insertion de la date de début du projet (au format Timestamp) dans la cellule B3.

Formule d’échelle de temps flexible pour le diagramme de Gantt dans Google Sheets

Videz la plage de ligne E3:3 et dans la cellule E3, insérez la formule ci-dessous, puis formatez la plage E3:3 en Date depuis Format > Nombre > Date.

=ArrayFormula( if(B1="Heures",TIME(SEQUENCE(1,B2,hour(B3),1),0,0), ifna( edate(B3, sequence(1,B2,0, ifs(B1="Mois",1,B1="Trimestres",3,B1="Semestres",6,B1="Années",12) ) ), sequence(1,B2,B3,ifs(B1="Quinzaines",14,B1="Semaines",7,B1="Jours",1)) ) ) )

Note 2 :
Si l’unité est « Heures », formatez la plage E3:3 en Heure (Format > Nombre > Heure).

Modifiez maintenant l’unité dans la cellule B1. Par exemple, sélectionnez « Semestres » dans la cellule B1. Ensuite, saisissez 4 dans la cellule B2.

La formule générera les dates suivantes dans la plage de cellules E3:H3 : 01-juil.-2021, 01-janv.-2022, 01-juil.-2022 et 01-janv.-2023.

Saisissez 01/01/2021 00:00:00 dans la cellule B3. La formule retournera alors les dates suivantes : 01-janv.-2021, 01-juil.-2021, 01-janv.-2022 et 01-juil.-2022.

Pouvez-vous expliquer la formule ci-dessus, qui sert d’échelle de temps flexible pour le diagramme de Gantt dans Google Sheets ?

Explication de la formule

Nous pouvons diviser la formule en trois parties : IF, EDATE et IFNA.

Partie 1 – IF (Heures)

C’est pour l’unité « Heures ».

=if(B1="Heures",TIME(SEQUENCE(1,B2,hour(B3),1),0,0)

L’instruction IF teste la valeur dans la cellule B1.

Si elle est évaluée comme VRAIE, c’est-à-dire si (B1= »Heures », la formule retournera des unités de temps « horaires ».

Partie 2 – EDATE (Mois, Trimestres, Semestres et Années)

Cette partie joue également un rôle vital dans notre formule d’échelle de temps flexible.

Lorsque la valeur dans la cellule B1 n’est pas « Heures », la formule de la partie 1 ci-dessus peut renvoyer FAUX.

Syntaxe : IF(logical_expression, value_if_true, value_if_false)

Cela signifie que si (B1= »Heures » est l’expression logique, et la formule de la partie 1 est l’argument value_if_true.

Si la partie 1 est évaluée comme FAUSSE, en value_if_false, IF exécutera la partie EDATE (partie 2 ci-dessus).

=edate(B3, sequence(1,B2,0, ifs(B1="Mois",1,B1="Trimestres",3,B1="Semestres",6,B1="Années",12) ) )

Syntaxe : EDATE(start_date, [months])

Grâce à la fonction EDATE, nous pouvons obtenir une date qui se situe à un certain nombre de mois (months) après une autre date (start_date).

Par exemple, la formule =edate("01/01/2021",5) retournera 01/06/2021.

EDATE expliqué :

  • start_date = B3 (date de début du projet)
  • months = formule SEQUENCE

Nous spécifierons les mois à l’aide de la fonction SEQUENCE afin que EDATE renvoie plusieurs dates.

Syntaxe : SEQUENCE(rows, [columns], [start], [step])

  • rows = 1 (nous souhaitons générer la séquence sur une seule ligne)
  • column = B2 (nous souhaitons obtenir B2 nombres dans la séquence)
  • start = 0
  • step = Le test logique IFS dans la formule de la partie 2 renvoie 1, 3, 6 ou 12 en fonction de l’unité sélectionnée.

Si B2 = 3 et IFS évalue à 6, nous pouvons traduire la formule ci-dessus comme suit :

=edate(B3, sequence(1,3,0, 6 ) )

La sortie de la séquence sera {0,6,12}, ce sont les mois dans EDATE.

Partie 3 – IFNA (Quinzaines, Semaines et Dates)

Si les IFS dans EDATE ne correspondent à aucune des unités, cela renverra N/D.

Cela signifie que l’unité sélectionnée n’est pas Mois, Trimestres, Semestres ou Années.

Dans ce cas, la fonction IFNA exécutera la partie suivante :

=sequence(1,B2,B3,ifs(B1="Quinzaines",14,B1="Semaines",7,B1="Jours",1)

Elle génère des dates dans une seule ligne, B2 nombre de colonnes, commençant par B3 en fonction de la valeur de décalage renvoyée par les IFS.

C’est la répartition de ma formule d’échelle de temps flexible pour Google Sheets.

Échelle de temps flexible et réponse du diagramme de Gantt

Un diagramme de Gantt basé sur une formule répondra à notre échelle de temps flexible dans Google Sheets.

Notez qu’il est également possible d’utiliser un graphique à barres empilées ou la fonction Sparkline pour représenter le diagramme de Gantt dans Google Sheets.

Nous avons déjà écrit la formule pour générer l’échelle de temps flexible pour le diagramme de Gantt. Elle se trouve dans la cellule E2 et nécessite les entrées dans les cellules B1, B2 et B3.

Pour le diagramme de Gantt, nous avons besoin des entrées supplémentaires suivantes :

  • B4 : Date de fin du projet (au format Timestamp).
  • B5:B10 – Dates de début des tâches.
  • C5:C10 – Dates de fin des tâches.

Sélectionnez maintenant la plage E5:10. Dans la mise en forme conditionnelle, insérez la formule personnalisée suivante :

=et(E$3>=$B5,E$3<=$C5)

Cela générera la barre en fonction de l’unité de temps choisie.

Note 3 :
Si l’unité de temps est « Heures », saisissez l’heure de début et l’heure de fin des tâches dans B5:B10 et C5:C10 respectivement.
Elles doivent être au format HH:MM:SS, par exemple 07:00:00.

Formule supplémentaire

Dans la cellule C2 (voir la capture d’écran ci-dessus), vous pouvez voir une valeur que je n’ai pas utilisée dans les formules.

Elle renvoie en fait le nombre d’unités en fonction des dates de début et de fin du projet dans les cellules B3:B4, ainsi que des unités de temps sélectionnées dans la liste déroulante.

J’ai utilisé la formule suivante dans la cellule C2 :

=ifs(B1="Jours",datedif(B3,B4,"d")+1,B1="Mois",datedif(B3,B4,"m")+1,B1="années",datedif(B3,B4,"y")+2,B1="Semestres",roundup((datedif(B3,B4,"d")+1)/182)+1,B1="Trimestres",roundup((datedif(B3,B4,"d")+1)/120),B1="Quinzaines",roundup((datedif(B3,B4,"d")+1)/14),B1="Semaines",roundup((datedif(B3,B4,"d")+1)/7),B1="Heures",roundup((B4-B3)*24))

Vous pouvez l’utiliser dans la cellule B2 ou y faire référence pour entrer manuellement le nombre d’unités souhaitées dans la cellule B2.

Voilà comment créer une échelle de temps flexible pour un diagramme de Gantt dans Google Sheets.

Merci de nous avoir suivi. Profitez-en bien !

Exemple de fichier 131221

Related:

Articles en lien