FRACTION.ANNEE (YEARFRAC en anglais) est LA fonction Excel pour calculer la fraction d'année entre deux dates. Que tu travailles en finance, RH ou comptabilité, elle te permet de calculer précisément des intérêts au prorata, des anciennetés, des primes ou des loyers. Elle est indispensable dès que tu dois faire des calculs proportionnels au temps écoulé.
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 de la fonction FRACTION.ANNEE
=FRACTION.ANNEE(date_début; date_fin; [base])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.
Astuce : Si tu calcules l'ancienneté d'un employé embauché le 15 mars 2020, passe DATE(2020;3;15) ou la référence à la cellule contenant cette date.
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.
Astuce : Pour les calculs RH (ancienneté, congés, primes), utilise toujours la base 1. C'est la plus juste et la plus facile à justifier auprès des employés ou de l'inspection du travail. Pour la finance, vérifie les normes de ton secteur ou les clauses du contrat.
Pas envie d'écrire la formule FRACTION.ANNEE à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
Contrôle de gestion : calcul d'intérêts courus sur un prêt
Tu es contrôleur de gestion et ton entreprise a contracté un emprunt de 500 000 € à 4,2% annuel le 1er janvier 2024. Tu dois calculer les intérêts courus au 15 septembre 2024 pour préparer le bilan intermédiaire. La banque utilise la convention Réel/360 (base 2).
Du 1er janvier au 15 septembre 2024, on compte 258 jours réels. Avec la base 2, la fraction d'année vaut 258 ÷ 360 = 0,7167. Les intérêts courus sont donc 500 000 € × 4,2% × 0,7167 = 15 050 €. Si tu avais utilisé la base 3 (Réel/365), tu aurais obtenu 14 858 €, soit 192 € de moins : la base 2 est avantageuse pour le prêteur car chaque jour « pèse » un peu plus lourd.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Capital | Taux annuel | Date début | Date fin | Fraction année | Intérêts courus |
| 2 | 500 000 € | 4,2% | 01/01/2024 | 15/09/2024 | 0,7167 | 15 050 € |
=500000 * 4.2% * FRACTION.ANNEE(DATE(2024;1;1); DATE(2024;9;15); 2)RH : calcul de prime d'ancienneté
Tu es responsable RH et tu dois calculer la prime d'ancienneté de Marie, embauchée le 15 mars 2020. La convention collective prévoit 100 € de prime par année d'ancienneté. Nous sommes le 30 novembre 2024.
Avec la base 1 (Réel/réel), FRACTION.ANNEE retourne 4,71 années, soit 4 ans et environ 8,5 mois (0,71 × 12 = 8,52 mois). La prime est donc 4,71 × 100 € = 471 €.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Employé | Date embauche | Date calcul | Ancienneté (années) | Prime unitaire | Prime totale |
| 2 | Marie Dupont | 15/03/2020 | 30/11/2024 | 4,71 | 100 € | 471 € |
=FRACTION.ANNEE(DATE(2020;3;15); DATE(2024;11;30); 1)Astuce de pro : Si ta convention demande des années complètes, utilise =ENT(FRACTION.ANNEE(...)) pour arrondir à l'entier inférieur. Tu aurais alors 4 ans complets et une prime de 400 €. La différence est importante pour ton budget !
Gestion immobilière : loyer au prorata
Tu es gestionnaire immobilier et un nouveau locataire emménage le 20 octobre 2024 dans un appartement loué 1 800 € par mois. Tu dois calculer le loyer au prorata pour la période du 20 au 31 octobre (12 jours d'occupation).
FRACTION.ANNEE(20 oct, 31 oct, base 3) retourne 0,0329 année. En multipliant par 12 mois, on obtient 0,3951 mois, soit environ 39,5% d'un mois. Puis on multiplie par le loyer mensuel : 1 800 € × 12 × 0,0329 = 710,96 €. FRACTION.ANNEE brille particulièrement quand la période chevauche plusieurs mois.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Loyer mensuel | Date entrée | Fin du mois | Fraction année | Loyer prorata |
| 2 | 1 800 € | 20/10/2024 | 31/10/2024 | 0,0329 | 710,96 € |
=1800 * 12 * FRACTION.ANNEE(DATE(2024;10;20); DATE(2024;10;31); 3)Analyste financier : rendement annualisé
Tu es analyste financier et tu veux calculer le rendement annualisé d'un investissement. Tu as investi 50 000 € le 1er mars 2024 et ton portefeuille vaut 53 200 € le 15 novembre 2024.
Le gain brut est de 3 200 € sur 50 000 €, soit 6,4%. Mais cette performance est réalisée sur seulement 0,7068 année. Pour annualiser : 6,4% ÷ 0,7068 = 9,04%. C'est le rendement que tu obtiendrais si cette performance se maintenait sur une année complète. Cette méthode est essentielle pour comparer des investissements de durées différentes.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Capital initial | Valeur finale | Date début | Date fin | Fraction année | Rendement annualisé |
| 2 | 50 000 € | 53 200 € | 01/03/2024 | 15/11/2024 | 0,7068 | 9,04% |
=(53200/50000 - 1) / FRACTION.ANNEE(DATE(2024;3;1); DATE(2024;11;15); 1)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.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes 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 sur la fonction FRACTION.ANNEE
Quelle base de calcul utiliser avec FRACTION.ANNEE ?
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.
Comment calculer l'ancienneté d'un employé avec FRACTION.ANNEE ?
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.
Pourquoi FRACTION.ANNEE retourne-t-elle des décimales au lieu de mois ?
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.
FRACTION.ANNEE peut-elle calculer des intérêts au prorata ?
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.
Quelle différence entre FRACTION.ANNEE et DATEDIF ?
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 longues périodes, les bases donnent-elles des résultats très différents ?
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
Les fonctions similaires : DATEDIF, JOURS, JOURS360, NB.JOURS.OUVRES, AUJOURDHUI
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois

