Calculer une durée de vie par rapport à une date

mercredi 29 janvier 2020, par ID

Il se trouve que, pour certains exercices, j’utilise une liste avec des noms de compositeurs et de compositrices. Liste dans laquelle je calcule leurs nombres d’années de vie : il y a des personnes encore en vie et d’autres qui ne le sont plus. Cette petite astuce permet de calculer automatiquement l’âge des musiciens et musiciennes encore vivants à partir des années.

Le problème dans ce genre de calcul c’est que les dates ne fonctionnent pas en système décimal, les âges si, en revanche. En outre, au départ, dans mon tableau, j’avais des personnes dont on connaissait l’année de la naissance ou celle du décès, mais pas la date exacte. De toute façon, la soustraction de ces deux dates ne donne pas un résultat en nombre d’années. Les années de naissance et de mort sont donc saisies comme des nombres tout à fait standard.

 Problème

Pour savoir combien de temps les gens ont vécu, ce n’est pas compliqué, c’est le résultat de la soustraction de la date (ou l’année) du décès moins celle de la naissance (ou de son année).

Déjà à ce stade, si on devait partir des dates, on aurait deux problèmes :

  • le résultat serait un nombre de jours et pas un nombre d’années, il faudrait donc grosso modo, par exemple, diviser le tout par 365 pour avoir le nombre d’années ou utiliser la fonction ANNEES ;
  • si cela fonctionne tout à fait bien pour le tableur des suites bureautiques LibreOffice, OpenOffice (pour mémoire) Calligra et Gnumeric qui fonctionnent nativement avec les formats ODF, cela ne fonctionne plus du tout dès lors qu’on a des dates avant le 1er janvier 1900 pour les suites bureautiques et les tableurs qui utilisent nativement les formats OOXML.

Partir de l’année est donc une solution, à la fois efficace et pratique. Sauf que… si on a affaire à des gens vivants et d’autres qui ne le sont pas, cela va poser des problèmes, on va avoir un âge négatif et il serait à la fois idiot et malvenu de mettre une année.

Simple soustraction des années
Les gens vivants ont un âge curieux, ici -1950 ans.

 Solution :

  1. une cellule de référence avec la fonction AUJOURDHUI, elle se met à jour automatiquement, utiliser dans une autre cellule la fonction ANNEE qui va transformer la date en année (donc en nombre « normal ») et la nommer (dans mon exemple, elle s’appelle « aujourdhui », tout bonnement) [1] ;
  2. faire le calcul sous la forme d’une fonction SI. Si le contenu de la cellule de l’année de décès (E2 dans l’exemple) est supérieur à 0, le résultat est la soustraction des deux cellules (ici donc E2-D2), si non il est égal à la cellule nommée « aujourdhui »-D2, ce qui donne la formule suivante que l’on peut tirer jusqu’en bas du tableau :

Et le résultat donne l’âge actuel.

Avec la fonction SI
L’âge ainsi calculé devient cohérent pour les personnes vivantes, cohérent et dynamique.

Évidemment, on peut (ce que je conseille surtout si votre classeur contient, par exemple des listes ou d’autres formules servant de base à d’autres calculs), mettre cela sur une autre feuille et, ensuite masquer ces cellules, voire la feuille qui les contient. Cela sécurise votre tableau.

Elle est pas belle la vie ?

 Pour aller plus loin**


[1C’est optionnel, mais plus pratique, cela transforme la référence en référence absolue et permet de « documenter » la formule. Chercher nom, nommer ou nommé en fonction du tableur utilisé, dans les menus ou les menus contextuels.