Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 Calcul de l'année en fonction du mois d’entrée et non pas à partir de janvier

JoBar57

XLDnaute Junior
Bonjour,

Dans la colonne « Années » du tableau1 qui se trouve dans l’onglet « Entrées », j’aimerais obtenir un résultat en fonction du nom inscrit dans la colonne « Personnel » de Tableau1 et de la date d’entrée qui se trouve dans Tableau5, colonne « Date d’entrée » (2e colonne du tableau)

Exemple si la personne est entrée en 05/2015 et que les dates de début et fin dans le Tableau1 vont du 15/03/2020 au 31/03/2020, le résultat devra être 2019 et non pas 2020 car l’année 2020 pour cette personne ne débutera qu’à compter du 1/05/2020.

Et donc si les dates vont par exemple du 15/05/2020 au 25/05/2020 alors le résultat dans la colonne « Années » sera bien 2020.

Le résultat actuel marche seulement si on parle d'année civile (du 1er janvier au 31 décembre).

D’avance merci de prendre le temps.
 

Pièces jointes

  • 20230811 - V - F - RF - test1.xlsm
    220.4 KB · Affichages: 15
Solution
Bonjour,

Si vous voulez utiliser "28/2" au lieu de "29/2" en colonne O entrez en I3 :
Code:
=ANNEE([@[Date de Fin]])-([@[Date de Fin]]<DATE(ANNEE([@[Date de Fin]]);MOIS(RECHERCHEV([@Personnel];Tableau5;2;0));JOUR(SUBSTITUE(TEXTE(RECHERCHEV([@Personnel];Tableau5;2;0);"j/m/aaaa");"29/2";"28/2"))))
Mais je n'en vois pas vraiment l'intérêt.

A+

job75

XLDnaute Barbatruc
Bonjour,

Si vous voulez utiliser "28/2" au lieu de "29/2" en colonne O entrez en I3 :
Code:
=ANNEE([@[Date de Fin]])-([@[Date de Fin]]<DATE(ANNEE([@[Date de Fin]]);MOIS(RECHERCHEV([@Personnel];Tableau5;2;0));JOUR(SUBSTITUE(TEXTE(RECHERCHEV([@Personnel];Tableau5;2;0);"j/m/aaaa");"29/2";"28/2"))))
Mais je n'en vois pas vraiment l'intérêt.

A+
 

Pièces jointes

  • 20230811 - V - F - RF - test1 job75.xlsm
    254.9 KB · Affichages: 5

JoBar57

XLDnaute Junior
Bonsoir,

Merci à chacun d'avoir pris le temps pour trouver une solution à mon problème

Si vous voulez utiliser "28/2" au lieu de "29/2" en colonne O entrez en I3 :
Mais je n'en vois pas vraiment l'intérêt.
Concernant un anniversaire effectivement aucun intérêt, concernant ce classeur ça évitera d'avoir des années qui commencent au mois de mars, puis tous les 4 ans l'année commence au mois de février, ce qui n'est pas très cohérent.
Alors merci pour la solution proposée.

Et juste pour ma culture personnelle, qu'est-ce qui a fait que ma recopie d'une colonne à l'autre ne fonctionne pas ?
 

JoBar57

XLDnaute Junior
Bonjour job75,

Vous voulez dire votre ajout de DATEDIF à ma formule ? Je n'ai rien compris.
Je n'ai rien ajouté à aucune formule, j'ai simplement effectué un copier-coller de votre formule de G3 ("Années") à I3 ("Année glissante") et là comme vous avez pu le constater, avec le fichier joint dans ma réponse, ça ne fonctionnait plus.
Et j'ai fait de même avec la formule en A3 de bsalv qui a posé le même problème

Ma question était simplement qu'est-ce que vous avez modifié pour que ça fonctionne à nouveau ?

Comme ça j'irai me coucher moins bête la prochaine fois (et serai un peu plus autonome).

Merci beaucoup d'éclairer ma lanterne.
 

JoBar57

XLDnaute Junior
=ANNEE([@[Date de Fin]])-([@[Date de Fin]]<DATE(ANNEE([@[Date de Fin]]);MOIS(RECHERCHEV([@Personnel];Tableau5;2;0));JOUR(RECHERCHEV([@Personnel];Tableau5;2;0))))
Voilà la formule telle qu'elle figure en I3 du post #13 (enfin tel qu'il est chez moi en tous cas). je ne vois pas de différence avec la formule du post #10.
=ANNEE([@[Date de Fin]])-([@[Date de Fin]]<DATE(ANNEE([@[Date de Fin]]);MOIS(RECHERCHEV([@Personnel];Tableau5;2;0));JOUR(RECHERCHEV([@Personnel];Tableau5;2;0))))
Je ne vois pas de DATEDIF là dedans, peux-tu me préciser ce que je ne vois pas ?

Merci
 

job75

XLDnaute Barbatruc
Bah vous n'avez copié que la 1ère partie de votre formule en I3, la formule complète au post #13 :
Code:
=ANNEE([@[Date de Fin]])-([@[Date de Fin]]<DATE(ANNEE([@[Date de Fin]]);MOIS(RECHERCHEV([@Personnel];Tableau5;2;0));JOUR(RECHERCHEV([@Personnel];Tableau5;2;0))))
+DATEDIF(RECHERCHEV([@Personnel];Tableau5[[#Tout];[Personnel]:[Date entrée ]];2;0);L3;"y")
C'est DATEDIF qui crée une erreur.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…