Ken aimerait afficher le contenu d’une cellule en fonction de l’heure de la journée. Par exemple, si la cellule C1 contient la fonction MAINTENANT (pour l’heure), dans une autre cellule, il aimerait une formule qui vérifie cette heure. Si c’est avant 17 h 00, la formule affiche le contenu de la cellule E1.

Si l’heure est postérieure à 17h00, la formule affiche le contenu de la cellule F1. Ken n’est pas sûr de savoir comment élaborer l’instruction IF afin qu’elle vérifie correctement l’heure.

La clé pour accomplir cette tâche est de se souvenir de la façon dont Excel stocke les heures et les dates en interne. Lorsque vous utilisez la fonction MAINTENANT, elle renvoie un numéro de série qui représente la date et l’heure actuelles. Tout ce qui se trouve dans ce numéro de série à gauche de la virgule décimale est la date, et tout ce qui se trouve à droite est l’heure. Débarrassez-vous de la partie date avant de faire votre comparaison, et vous comparez alors des pommes aux pommes (pour ainsi dire).

Une façon de se débarrasser de la partie date du numéro de série est de cette manière:

=IF(C1-INT(C1)<TIME(17,0,0),E1,F1)

La fonction TIME renvoie uniquement la partie heure d’un numéro de série date / heure pour les heures, minutes et secondes que vous spécifiez dans les paramètres. Puisque vous voulez 17h00, seule la partie des heures doit être définie sur 17.

Une autre façon de supprimer la partie date du numéro de série est d’utiliser la fonction MOD, de cette manière:

=IF(MOD(C1,1)<TIME(17,0,0),E1,F1)

La fonction renvoie le reste après avoir divisé la valeur de C1 par 1.

Le reste, dans ce cas, correspond à tout ce qui se trouve à droite du point décimal – le temps.

Cependant, le moyen le plus simple de faire la comparaison est peut-être d’ignorer complètement tout calcul sur la valeur en C1. À la place, utilisez la fonction HOUR, de cette manière:

=IF(HOUR(C1)<17,E1,F1)

La fonction HOUR examine le numéro de série date / heure dans la cellule C1 et renvoie une valeur comprise entre 0 et 23, en fonction de l’heure du jour représentée par ce numéro de série. Comparez cela à 17 (la valeur de l’heure 17h00) et votre formule peut afficher la valeur souhaitée en fonction de l’heure de la journée.

Il est important de se rappeler que la fonction MAINTENANT (sur laquelle votre formule s’articule) est mise à jour uniquement lorsque la feuille de calcul est mise à jour. Cela signifie que si votre feuille de calcul est mise à jour à 16 h 55 et n’est pas à nouveau mise à jour avant 17 h 10, pendant ces 15 minutes, la formule renverra la valeur « avant 17 h » car elle ne la connaît pas encore est après 17h00 jusqu’au recalcul.

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (12889) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.