2. Fonctions de dates
Avant de montrer des fonctions Excel, je vous montrerai la gestion de dates et heures par Excel.
Comment Excel gère les dates et heures ? Notion de Numéro de série
Lorsque vous écrivez des valeurs avec certaines formats, Excel peut les reconnaitre comme des dates et heures. Voici quelques exemples :
- 14/05/2018
- 15:50
- 03/08/2018 17:20
- 1:15:30
- etc...
Excel ne reconnaitera pas "20/15/2018" comme date. D'ailleurs, il ne s'agit pas d'une date valide.
Comment savoir si Excel a reconnu votre écriture comme date et heure ?
Je vous demande alors de saisir ces valeurs en une feuille Excel comme suit :
Sélectionnez ensuite la plage A2:A6 et convertissez son format en "standard". Je vous rappelle comment :
- Sélectionnez la plage A2:A6
- Utilisez le bouton Format du groupe Cellules de l'onglet Accueil du ruban
- Cliquez sur Format de cellule au niveau du menu qui apparait
- La boite de dialogue Format de cellule apparait. Cliquez sur l'onglet Nombre
- Cliquez enfin sur Standard de la liste Catégorie. Validez par le bouton OK.
Voici le résultat :
Les valeurs reconnues par Excel comme dates et heures sont converties en nombres.
Comment Excel gère les dates et heures ?
Excel enregistre les dates et heures comme des nombres avec partie décimale. Le nombre relatif à une date-heure est appelé Numéro de série.
Donc, pour Excel, les dates et heures sont des nombres. Lorsque vous saisissez par exemple "14/05/2018", Excel l'enregistre comme un nombre, et conserve à peu près le format que vous avez saisi. Vous pouvez ensuite modifier son format comme vous voulez.
Vous pouvez même saisir un nombre et convertir son format en date et heure.
Quelle est la correspondance entre date-heure et nombre ?
D'abord, la partie entière correspond à la date et la partie décimale correspond à l'heure.
Détaillons cela à l'aide d'un exemple. soit la valeur 43315,7258680556 qui correspond à la date-heure 03/08/2018 17:25:15.
La partie décimale 0.7258680556 correspond à l'heure-minute-seconde. Pour retrouvez l'heure, je la multiplie par 24 :
0.7258680556 * 24 = 17,42083333
La partie entière "17" de cette valeur est l'heure. La partie décimale de cette valeur, je la multiplie par 60 :
0,42083333 * 60 = 25.25
La partie entière "25" de cette valeur est la minute. La partie décimale de cette valeur, je la multiplie par 60 :
0.25 * 60 = 15
15 correspond au nombre de seconde.
En ce qui concerne les dates :
- La valeur 1 correspond au 01/01/1900. D'ailleurs, Excel ne gère pas les dates antérieures au 01/01/1900.
- La différence entre les numéros de série de deux jours successifs est 1.
Le calcul des jour, mois et année à partir d'un numéro de série est un peu compliqué car il faut tenir compte du nombre de jours de chaque mois et en tenant compte des années bissextiles.
Des fonctions Excel permettent de retrouver les composants d'une date-heure à partir de son numéro de série.
Fonctions AUJOURDHUI et MAINTENANT
Syntaxe
AUJOURDHUI()
MAINTENANT()
Arguments
Ces deux fonctions ne prennent aucun argument.
Résultat
La fonction AUJOURDHUI retourne la date d'aujourd'hui
La fonction MAINTENANT retourne la date et heure en cours
Exemple
Fonctions DATE et TEMPS
Syntaxe
DATE(année;mois;jour)
TEMPS(heure;minute;seconde)
Arguments
année : nombre compris entre 1900 et 1999 qui définit l'année de la date retournée
mois : nombre compris entre 1 et 12 qui définit le mois de la date retournée
jour : nombre compris entre 1 et 31 qui définit le jour du mois de la date retournée
heure : nombre compris entre 0 et 23 qui définit l'heure de la valeur retournée
minute : nombre compris entre 0 et 59 qui définit la minute de la valeur retournée
seconde : nombre compris entre 0 et 59 qui définit la seconde de la valeur retournée
Résultat
La fonction DATE retourne une valeur date correspondant aux valeurs données en argument représentant l'année, le mois et le jour.
La fonction TEMPS retourne une valeur heure correspondant aux valeurs données en argument représentant l'heure, la minute et la seconde.
Exemple
Soit une feuille de calcul où les valeurs relatives à une date sont écrites en 3 colonnes, la colonne A pour l'année, B pour le mois et C pour le jour. Nous voulons avoir la date "complète" à la colonne D. La formule à écrire en D2 est :
"=DATE(A2;B2;C2)"
Notez que lorsque le jour est supérieur à 31 ou le mois est supérieur à 12, la fonction DATE ne renvoie pas d'erreur. Au contraire, l'excédent se transforme en mois et en années.
De même, lorsque la seconde ou la minute est supérieure à 60, la fonction TIME ne renvoie pas d'erreur. Au contraire, le surplus se transforme en minutes et en heures.
Fonction JOURS
La fonction JOURS retourne le nombre de jours qui séparent deux dates.
Syntaxe
JOURS(date_fin;date_début)
Arguments
date_fin : date fin de la période à calculer
date_début : date début de la période à calculer
Résultat
La fonction JOURS retourne le nombre de jours entre deux dates. Si date_fin est antérieures à date_début, la valeur retournée est négative.
NB. Puisque les dates en Excel sont des nombres, nous pouvons calculer le nombre de jours entre deux dates en écrivons :
date_fin - date_début
Y a-t-il une différence par rapport au résultat de la fonction JOURS ?
La réponse est Oui lorsque l'une ou les deux dates contiennent également l'heure, car JOURS ne tient pas compte de l'heure et retourne toujours une valeur entière.
Exemple
Soit une feuille de calcul où on enregistre la date d'accomplissement de deux étapes d'un procesus. Nous voulons calculer la durée entre les deux étapes. La formule à écrire en C2 est : "=JOURS(B2;A2)"
Fonction MOIS.DECALER
Comment ajouter un nombre de jours à une date ?
Je rappelle que les dates en Excel sont représentées par des nombres appelés les numéros de série et que la différence entre les numéros de série de deux jours succéssifs est 1. Donc, pour ajouter un nombre de jours à une date, il suffit d'ajouter ce nombre à la date.
Par exemple, la valeur en cellule A2 est une date, et nous voulons avoir en B2 la date une semaine plus tard. En cellule B2, il faut écrire la formule :
=A2+7
Je rappelle que la date en A2 peut être affichée sous n'importe quel format, mais, doit être reconnu par Excel comme une date.
Et comment faire pour ajouter un nombre de mois à une date ? Est ce qu'il suffit d'ajouter ce nombre multiplié par 30 ?
La réponse est que le résultat dans ce cas ne serait pas exact. La raison est que les mois ne sont pas tous 30 jours. Par exemple si j'ajoute 30 au "01/07/", j'aurai le "31/07/" et non pas le "01/08/". De même, si j'ajoute 30 au "01/02/", ce sera le "02/03/" ou le "03/03/".
Pour ajouter un nombre de mois et tomber sur le même jour de mois, Excel a prévu la fonction MOIS.DECALER.
Syntaxe
MOIS.DECALER(date_départ;mois)
Arguments
date_départ : la date de départ à laquelle nous voulons ajouter un nombre de mois
mois : nombre de mois à ajouter
Résultat
La date après date_départ du nombre de mois spécifié par l'argument mois lorsque celui-ci est positif. La date avant date_départ du nombre de mois spécifié par l'argument mois lorsque celui-ci est négatif.
NB. Pour ajouter des années à une date, il faut utiliser la fonction MOIS.DECALER, avec en 2ème argument le nombre d'années à ajouter multiplié par 12.
Exemple
A l'extrait de feuille de calcul suivante est déterminée la date de promotion qui est 2 ans et demi après la date de recrutement. La formule en cellule C2 est :
=MOIS.DECALER(B2;30)
Fonctions ANNEE, MOIS, JOUR, JOURSEM, HEURE, MINUTE et SECONDE
Syntaxe
ANNEE(numéro_de_série)
MOIS(numéro_de_série)
JOUR(numéro_de_série)
JOURSEM(numéro_de_série)
HEURE(numéro_de_série)
MINUTE(numéro_de_série)
SECONDE(numéro_de_série)
Arguments
numéro_de_série : une date (représentée en Excel par un nombre appelée numéro de série) que l'on veut connaitre une de ses composantes l'année, le mois, le jour du mois, le jour de la semaine, l'heure, la minute ou bien la seconde.
Résultat
La fonction ANNEE retourne l'année de la date donnée en argument
La fonction MOIS retourne le mois de la date donnée en argument : 1 à 12
La fonction JOUR retourne le jour du mois de la date donnée en argument : 1 à 31
La fonction JOURSEM retourne le jour de la semaine de la date donnée en argument : 1 à 7
La fonction HEURE retourne l'heure de la date-heure donnée en argument : 0 à 23
La fonction MINUTE retourne la minute de la date-heure donnée en argument : 0 à 59
La fonction SECONDE retourne la seconde de la date-heure donnée en argument : 0 à 59