Il existe une trentaine de fonctions dans Excel qui ne sont pas référencées dans les listes des fonctions Excel mais la seul que l'on trouve sur le web c'est DATEDIF !
Pourquoi ?
- La plupart sont obsolètes ou pour les utilisateurs en langues asiatiques (liées au codage des caractères sur 2 octets dans ces langues).
- Certaines sont sortie de l'ombre (ISPMT,...).
Fonctions dédiées aux langues asiatiques
Fonctions opérationnelles (fonctionnent sans une configuration spécifique).
- ASC : Remplace les caractères à pleine chasse (codés sur deux octets -DBCS>Double-byte Character Set) en caractères à demi-chasse (codés sur un octet).
- DBSB : L'inverse de ASC (convertit des lettres à demi-chasse /codées sur un octet à l’intérieur d’une chaîne de caractères en caractères à pleine chasse/codés sur deux octets).
- DROITEB : Équivalent à DROITE (un caractère peut compter pour 1 où 2 !).
- GAUCHEB : Équivalent à GAUCHE (un caractère peut compter pour 1 où 2 !).
- LENB : Équivalent à NBCAR (nombre d'octets utilisé !).
- STXTB : Équivalent à STXT.
- TROUVERB : Équivalent à TROUVE.
- REMPLACERB : Équivalent à REMPLACER.
- CHERCHERB : Équivalent à CHERCHER.
Fonctions non opérationnelles (ne fonctionnent pas sans une configuration spécifique).
- ISTHAIDIGIT
- PHONETIQUE
- ROUNDBAHTDOWN
- ROUNDBAHTUP
- THAIDAYOFWEEK
- THAIDIGIT
- THAIMONTHOFYEAR
- THAINUMSOUND
- THAINUMSTRING
- THAISTRINGLENGTH
- THAIYEAR
- DATESTRING : Date en caractères japonais (pour compatibilité Lotus 123).
- NUMBERSTRING : Nombre en caractères japonais (pour compatibilité Lotus 123).
Fonctions ayant été remplacées/renommées
- ISO.PLAFOND : Équivalent à PLAFOND.MATH (pas de ISO.PLANCHER).
- PLAFOND.PRECIS : Équivalent à PLAFOND.MATH.
- PLANCHER.PRECIS : Équivalent à PLANCHER.MATH.
- ECMA.PLAFOND : Équivalent à PLAFOND.MATH (pas de ECMA.PLANCHER).
- USDOLLAR : Équivalent à DEVISE.
La fonction DATEDIF
La fonction la plus utile de ces fonctions cachées.
= DATEDIF(date_début ; date_fin ; unité)Permet de calculer le nombre de jours, de mois ou d’années qui séparent deux dates.
Attention à ne pas la confondre avec DateDiff la fonction VBA et DiffDate la fonction d'Access ayant le même fonctionnement toutes les deux.
Voir Fonction DATEDIF - Support Microsoft
Exemple d'utilisation
Calcul d'ancienneté
=DATEDIF(A2;AUJOURDHUI();"y")&" an(s) " & DATEDIF(A2;AUJOURDHUI();"ym")&" mois " & DATEDIF(A2;AUJOURDHUI();"md")&" jour(s) "
Version condensée pour des Excel récents
=LET(aj;AUJOURDHUI();CONCAT(DATEDIF(A2;aj;{"y";"ym";"md"})&" "&{"an(s)";"mois";"jour(s)"}&" "))
Remarques
> Erreur lors de l'interprétation des résultats
Avec des dates comme le 18/09/2024 et le 17/10/2024, certains utilisateurs sont étonnés d'obtenir avec "ym" (écart en mois) la valeur 0 et non 1. Ce résultat est correct, il y a bien un écart de 29 jours donc il y a bien 0 mois d'écart (ne pas penser simplement : 10 (octobre) - 9 (septembre) = 1 !).
> Erreurs réelles/bug
Comme indiqué dans la page d'aide officielle, Fonction DATEDIF - Support Microsoft, les résultats avec le paramètre "md" sont parfois faux (on peut obtenir -2 ou -1 comme résultat 🤪) et la formule de remplacement/contournement de cette page d'aide ne me parait pas plus juste non plus ! 😰
Il me semble aussi que les résultats avec le paramètre "ym" sont eux aussi discutable lors de ce bug !
Les fonctions DATEDIF de LibreOffice et de GoogleSheet présentent les même résultats (pour compatibilité ?).
Il me semble que la condition de déclanchement de ce bug est quand la date de fin, la deuxième date, est au mois de mars (c'est le mois d'avant, le mois de février, qui semble perturber les résultats).
Cette article : Ma version de la fonction DATEDIF, propose une autre solution pour réaliser ces calculs.
Fonctions diverses
- SERIE : Fonction utilisée par les graphiques Excel (légèrement exploitable, voir Un graphique avec source de données dynamique).
- SINGLE : ? quand on active les options de compatibilité Lotus123.
Si vous en avez d'autre, n'hésitez pas à m'en faire part.
Merci pour votre attention bienveillante.

2 commentaires