Qu'est-ce que la fonction FRACTION. ANNEE ?
FRACTION.ANNEE (YEARFRAC en anglais) te sert dès qu'un montant, un taux ou une prime doit être calculé au prorata du temps réellement écoulé plutôt que sur une année pleine que personne n'a atteinte. C'est la fonction à utiliser en finance, en RH ou en comptabilité chaque fois qu'un calcul proportionnel au temps doit sortir un chiffre défendable face à un contrôle ou un client.
Ce qui la rend si puissante, c'est qu'elle propose 5 méthodes de calcul différentes (les « bases »), correspondant aux conventions comptables internationales. Contrairement à DATEDIF qui retourne des valeurs entières (années complètes, mois complets), FRACTION.ANNEE retourne un nombre décimal représentant la proportion exacte d'une année : 6 mois = 0,5, 3 mois = 0,25, 9 mois = 0,75. Cette précision est cruciale en finance où quelques jours peuvent représenter des milliers d'euros d'intérêts.
Syntaxe
=FRACTION.ANNEE(date_début; date_fin; [base])Clique sur un argument pour aller à son explication.

Comprendre chaque paramètre de la fonction FRACTION.ANNEE
Tu donnes d'abord la date de départ, ensuite la date d'arrivée, et c'est tout pour démarrer : les deux premiers arguments sont obligatoires. Le troisième, base, est facultatif et c'est lui qui décide quelle convention comptable applique le calcul.
L'oublier n'est pas neutre : Excel retombe alors sur la base 0 (US 30/360), qui n'est pas forcément celle de ton secteur. Si tu fais du RH ou de la banque française, tu voudras presque toujours préciser ce troisième argument toi-même.
date_début
: la date de début de la période que tu veux mesurerTu peux passer une date construite avec DATE(2024;1;15), une référence à une cellule comme A2, ou le résultat d'une fonction comme AUJOURDHUI().
Excel accepte aussi les dates en texte au format « JJ/MM/AAAA » mais c'est moins fiable. Préfère toujours la fonction DATE pour garantir la cohérence.
date_fin
: la date de fin de la périodeElle doit normalement être postérieure ou égale à date_début. Si date_fin est antérieure à date_début, Excel retourne une valeur négative sans message d'erreur, ce qui passe souvent inaperçu dans un grand tableau.
Pour calculer une ancienneté jusqu'à aujourd'hui, utilise simplement AUJOURDHUI() comme date de fin : la formule se met à jour automatiquement chaque jour.
[base]
: la méthode de calcul à utiliser(facultatif)Chaque base correspond à une convention comptable différente. Si tu omets ce paramètre, Excel utilise la base 0 par défaut.
0 – US 30/360 (par défaut) : méthode américaine standard, 30 jours par mois, 360 jours par an. Utilisée pour les obligations américaines et certains prêts immobiliers US.
1 – Réel/réel : nombre réel de jours divisé par le nombre réel de jours dans l'année (365 ou 366 si bissextile). La plus précise mathématiquement, recommandée pour les calculs RH.
2 – Réel/360 : nombre réel de jours divisé par 360. Convention bancaire commerciale pour les intérêts sur comptes d'épargne et certains prêts. Avantageuse pour le prêteur.
3 – Réel/365 : nombre réel de jours divisé par 365 fixe. Utilisée dans certains calculs financiers quand on ignore les années bissextiles.
4 – Européenne 30/360 : similaire à la base 0 mais avec des règles légèrement différentes pour les fins de mois. Standard pour les obligations européennes.

Exemples pratiques pas à pas
Comment calculer la fraction d'année entre deux dates avec la fonction FRACTION.ANNEE
Chaque contrat de ton tableau démarre et s'arrête à une date différente, et la banque facture les intérêts au prorata du temps écoulé. Avant de calculer le moindre montant, il te faut la durée de chaque contrat exprimée en portion d'année plutôt qu'en jours.
La fonction FRACTION.ANNEE convertit un couple de dates en nombre décimal directement multipliable par un taux annuel.
- 1Dans une cellule, écris
=FRACTION.ANNEE(. - 2En 1er argument : clique sur la date de début,
C2. Elle affiche01/01/2024et fixe le jour où le contrat PRET-1 commence à courir. La formule pointe la cellule plutôt que la date écrite en dur, si bien qu'elle se recopie telle quelle sur les autres contrats. - 3En 2ᵉ argument : clique sur la date de fin,
D2, qui arrête le décompte au15/09/2024. On lit toujours du départ vers l'arrivée, et deux dates saisies dans l'ordre inverse renverraient une fraction négative sans aucun message d'erreur. - 4En 3ᵉ argument : saisis la base de calcul,
2. C'est la convention réel/360 retenue par la banque, celle qui compte les jours réellement écoulés mais les rapporte à une année forfaitaire de 360 jours, ce qui la rend légèrement favorable au prêteur. - 5Ferme la parenthèse et appuie sur Entrée.
=FRACTION.ANNEE(C2; D2; 2)Comment calculer des intérêts au prorata avec la fonction FRACTION.ANNEE
Le bilan intermédiaire arrive et l'emprunt de 500 000 € tourne depuis le 1er janvier, sans qu'aucune échéance annuelle ne soit encore tombée. Tu dois quand même inscrire les intérêts courus au 15 septembre, ni plus ni moins.
La fonction FRACTION.ANNEE fournit la portion d'année écoulée, qu'il suffit ensuite de multiplier par le capital et le taux.
- 1Dans une cellule, écris
=puis clique sur le capital,B2, complète par*, clique sur le taux annuel,C2, et écris de nouveau*. Le produit de ces deux cellules donne les intérêts d'une année pleine, un montant encore théorique tant que la période n'est pas terminée. - 2Écris
FRACTION.ANNEE(pour convertir la période écoulée en portion d'année, puis :- aEn 1er argument : clique sur la date de début,
D2. Elle affiche01/01/2024et ouvre la période sur laquelle l'emprunt porte intérêt. - bEn 2ᵉ argument : clique sur la date de fin,
E2. Elle affiche15/09/2024et arrête le décompte à la date du bilan intermédiaire, jusqu'où les intérêts sont dus. - cEn 3ᵉ argument : saisis la base,
2. C'est la convention réel/360 du contrat de prêt, et le choix n'est pas neutre : en base 1, la même formule sortirait 14 803,28 €, soit 246,72 € de moins pour des dates identiques.
- aEn 1er argument : clique sur la date de début,
- 3Ferme la parenthèse et appuie sur Entrée.
=B2 * C2 * FRACTION.ANNEE(D2; E2; 2)Comment l'argument base change le résultat de la fonction FRACTION.ANNEE
Ton calcul d'intérêts ne tombe pas sur le même montant que celui de la banque, alors que vous partez des deux mêmes dates. Avant d'accuser un arrondi, il faut regarder la convention de décompte de chacun, parce que c'est presque toujours de là que vient l'écart.
En faisant varier la seule base sur des dates identiques, la fonction FRACTION.ANNEE met les cinq conventions côte à côte.
- 1Dans une cellule, écris
=FRACTION.ANNEE(. - 2En 1er argument : écris la date de début et referme-la,
DATE(2024;1;1). Elle est saisie en dur, à l'identique sur les cinq lignes, pour que rien d'autre que la base ne change d'une ligne à l'autre. - 3En 2ᵉ argument : écris la date de fin et referme-la,
DATE(2024;9;15). Comme la première, elle ne bouge jamais, et c'est ce qui rend la comparaison lisible, puisque tout écart ne peut alors venir que du troisième argument. - 4En 3ᵉ argument : clique sur la base,
A2, qui prend les cinq valeurs admises de0à4, une par ligne. Retiens que0est la convention appliquée quand tu omets l'argument, soit le 30/360 américain, et que la base1(réel/réel) ne se confond pas avec le 30/360 européen, qui porte le numéro4. - 5Ferme la parenthèse et appuie sur Entrée.
=FRACTION.ANNEE(DATE(2024;1;1); DATE(2024;9;15); A2)
Astuces avancées avec FRACTION.ANNEE
Convertis facilement en mois ou jours
FRACTION.ANNEE retourne toujours des années décimales. Pour obtenir des mois, multiplie par 12 : =FRACTION.ANNEE(...) * 12. Pour des jours approximatifs, multiplie par 365. Par exemple, 2,5 années = 30 mois = 912,5 jours.
Dès que tu veux une ancienneté lisible (« 3 ans et 4 mois »), bascule sur DATEDIF ; FRACTION.ANNEE reste pour les calculs au prorata.
Utilise AUJOURDHUI() pour des calculs dynamiques
Pour calculer une ancienneté qui se met à jour automatiquement, utilise =FRACTION.ANNEE(date_embauche; AUJOURDHUI(); 1). Le résultat s'actualise chaque jour sans intervention manuelle.
Combine avec ENT() si tu n'as besoin que des années complètes : =ENT(FRACTION.ANNEE(date_embauche; AUJOURDHUI(); 1)).
Sécurise tes formules contre les dates inversées
Si les dates peuvent être saisies dans n'importe quel ordre, enveloppe dans ABS() pour éviter des valeurs négatives silencieuses : =ABS(FRACTION.ANNEE(A1; B1; 1)). Pour gérer les cellules vides, ajoute SIERREUR par-dessus.
Sur de longs prêts ou de grands tableaux, une valeur négative non détectée peut fausser tout un rapport.

Les erreurs fréquentes avec la fonction FRACTION.ANNEE
Avec FRACTION.ANNEE, le vrai danger c'est qu'elle ne crie presque jamais : choisir la mauvaise base ou inverser tes deux dates ne déclenche aucun message, juste un chiffre faux (ou négatif) qui se fond dans le tableau. Sur un gros emprunt, ce silence peut coûter plusieurs centaines d'euros sans que personne ne le remarque.
Les seuls cas où elle proteste vraiment, c'est quand tes dates arrivent en texte (#VALEUR!) ou quand tu confonds le résultat décimal avec des mois. Les voici en détail.
Utiliser la mauvaise base de calcul
Chaque secteur a ses conventions. Sur un emprunt de 1 million d'euros à 5%, un écart de 0,01 année entre les bases peut représenter 500 € d'écart. Les erreurs de base sont silencieuses : la formule ne renvoie pas d'erreur.
Solution : Vérifie les normes de ton secteur ou les clauses du contrat. En cas de doute : applique base 1 pour les RH, base 2 pour les banques commerciales, base 0 pour la finance américaine, base 4 pour la finance européenne.
Dates inversées donnant une valeur négative
Si date_fin est antérieure à date_début, Excel retourne une valeur négative sans message d'erreur. C'est rarement voulu et peut passer inaperçu dans un grand tableau.
Solution : Utilise =ABS(FRACTION.ANNEE(A1; B1; 1)) pour obtenir la valeur absolue si l'ordre des dates n'est pas garanti. Ou ajoute une validation conditionnelle pour t'avertir dès que le résultat est négatif.
Erreur #VALEUR! avec des dates stockées en texte
Si les dates sont stockées en texte (souvent après un import CSV ou une saisie manuelle), Excel ne peut pas les interpréter comme des dates et renvoie #VALEUR!.
Solution : Utilise toujours DATE(année; mois; jour) pour construire tes dates de façon fiable : DATE(2024;3;15) plutôt que "15/03/2024". Pour des dates existantes en texte, convertis-les d'abord avec la fonction DATEVAL.
Obtenir des mois au lieu d'années décimales
Erreur classique : on s'attend à obtenir des mois mais FRACTION.ANNEE retourne toujours des années. Par exemple, 6 mois = 0,5 (année), pas 6.
Solution : Pour convertir en mois : =FRACTION.ANNEE(...) * 12. Pour des jours approximatifs : =FRACTION.ANNEE(...) * 365. Pour des semaines : =FRACTION.ANNEE(...) * 52.

FRACTION.ANNEE vs DATEDIF vs JOURS vs NB.JOURS.OUVRES
Prends FRACTION.ANNEE dès qu'il te faut un nombre au prorata : intérêts courus, primes, loyers, rendement annualisé. C'est la seule des quatre à te donner du décimal et à proposer 5 conventions comptables. Pour juste afficher une ancienneté lisible (« 3 ans et 4 mois »), DATEDIF est plus parlant.
Quand tu n'as besoin que du nombre de jours bruts entre deux dates, JOURS suffit ; et si tu veux exclure week-ends et jours fériés pour un planning, c'est NB.JOURS.OUVRES qu'il te faut, pas FRACTION.ANNEE.
| Critère | FRACTION.ANNEE | DATEDIF | JOURS | NB.JOURS.OUVRES |
|---|---|---|---|---|
| Type de résultat | Décimal (fraction d'année) | Entier (années/mois/jours) | Entier (jours) | Entier (jours ouvrés) |
| Précision | Très précis (décimal) | Précis mais entier | Exact en jours | Exact (jours travaillés) |
| Usage principal | Finance, calculs au prorata | Affichage ancienneté | Délais, écarts simples | Planning projet, RH |
| Conventions multiples | 5 bases différentes | Une seule méthode | Une seule méthode | Jours fériés exclus |
| Exemple (6 mois) | 0,5 | "m" → 6 ou "y" → 0 | ~183 jours | ~130 jours ouvrés |
Questions fréquentes
La base 1 (Réel/réel) est la plus précise et la plus recommandée pour les calculs RH. La base 0 (US 30/360) est le standard en finance américaine. La base 2 (Réel/360) est utilisée par les banques pour les intérêts. La base 3 (Réel/365) simplifie les calculs avec un diviseur fixe. La base 4 (Européenne 30/360) est la norme pour les obligations européennes. Choisis selon ton secteur et tes conventions comptables.
Utilise =FRACTION.ANNEE(date_embauche; AUJOURDHUI(); 1) pour obtenir l'ancienneté exacte en années décimales. Par exemple, 2,75 signifie 2 ans et 9 mois (0,75 × 12 = 9 mois). La base 1 est recommandée car elle prend en compte les années bissextiles. Si tu veux afficher en mois, multiplie par 12.
La fonction retourne une fraction d'année, pas des mois ou des jours. C'est voulu pour les calculs financiers : intérêts, primes au prorata, amortissements. 0,5 = 6 mois, 0,25 = 3 mois, 1,0 = 1 an exact. Pour convertir en mois, multiplie par 12. Pour des jours approximatifs, multiplie par 365.
Absolument, c'est son usage principal en finance. Multiplie le taux d'intérêt annuel par FRACTION.ANNEE pour obtenir les intérêts exacts sur une période partielle : =montant * taux * FRACTION.ANNEE(date_début; date_fin; base). La base 2 (Réel/360) est couramment utilisée par les banques pour ce type de calcul.
DATEDIF retourne des entiers (années, mois ou jours complets), FRACTION.ANNEE retourne une fraction décimale d'année beaucoup plus précise. FRACTION.ANNEE est indispensable pour les calculs financiers nécessitant des montants au prorata. DATEDIF est plus adapté pour afficher simplement une ancienneté (« 3 ans et 4 mois »).
Sur des périodes courtes (quelques mois), les différentes bases donnent des résultats très similaires. Sur des périodes longues (plusieurs années), les écarts peuvent atteindre plusieurs milliers d'euros en finance. Un décalage de 0,01 année sur un emprunt de 1 million d'euros à 5% représente 500 € d'écart. Fais toujours un tableau comparatif avant de choisir ta base.
Pour aller plus loin
Continue sur ta lancée après la fonction FRACTION.ANNEE : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



