Excel : excel transformer (yyyy;mm) en nombre
Fermé
BipBip
-
8 avril 2009 à 11:11
Mike-31 Messages postés 18384 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 9 avril 2025 - 9 avril 2009 à 21:22
Mike-31 Messages postés 18384 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 9 avril 2025 - 9 avril 2009 à 21:22
A voir également:
- Excel : excel transformer (yyyy;mm) en nombre
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si et excel - Guide
- Déplacer une colonne excel - Guide
- Excel moyenne - Guide
15 réponses
Raph04
Messages postés
158
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
17 mai 2022
24
8 avril 2009 à 11:40
8 avril 2009 à 11:40
Bonjour,
Alors voici la formule qui permet d'obtenir l'ancienneté d'une personne par rapport à la date du jour, si sa date d'arrivée est placé en cellule A1 :
=(AUJOURDHUI()-A1)/365
Ensuite il suffit de diviser tout cela par 5 et multiplier par 2 pour avoir le nombre de jours soit la formule :
=(((AUJOURDHUI()-A1)/365)/5)*2
Pour afficher un resultat correct, verifier que le format de la cellule est bien en "nombre" et non en date, ou autre format. Après on peut jouer sur le nombre de chiffre après la virgule pour avoir un chiffre entier ou non.
Alors voici la formule qui permet d'obtenir l'ancienneté d'une personne par rapport à la date du jour, si sa date d'arrivée est placé en cellule A1 :
=(AUJOURDHUI()-A1)/365
Ensuite il suffit de diviser tout cela par 5 et multiplier par 2 pour avoir le nombre de jours soit la formule :
=(((AUJOURDHUI()-A1)/365)/5)*2
Pour afficher un resultat correct, verifier que le format de la cellule est bien en "nombre" et non en date, ou autre format. Après on peut jouer sur le nombre de chiffre après la virgule pour avoir un chiffre entier ou non.
Merci pour la rapidité et la précision de ta réponse.
L'ancienneté "15 ans et 3 mois" ce trouve en I3, j'ai donc appliqué la formule que tu ma donné :
=(((AUJOURDHUI()-I3)/365)/5)*2
Cependant il ne me donne pas de valeur ( #VALEUR ) et sa peut importe le format de la cellule.
Ma formule I3 est la suivant :
=DATEDIF(H3;DATE(2009;6;1);"y") & " ans " & DATEDIF(H3;DATE(2009;6;1);"ym") & " mois"
Elle me permet de calculer la différence entre la date d'entré et la période de référence.
Quel peut être le problème.
Merci :)
L'ancienneté "15 ans et 3 mois" ce trouve en I3, j'ai donc appliqué la formule que tu ma donné :
=(((AUJOURDHUI()-I3)/365)/5)*2
Cependant il ne me donne pas de valeur ( #VALEUR ) et sa peut importe le format de la cellule.
Ma formule I3 est la suivant :
=DATEDIF(H3;DATE(2009;6;1);"y") & " ans " & DATEDIF(H3;DATE(2009;6;1);"ym") & " mois"
Elle me permet de calculer la différence entre la date d'entré et la période de référence.
Quel peut être le problème.
Merci :)
J'ai une autre question toujours sur le même sujet,
est il possible de garder seulement les jours qui sont due ?
je m'explique :
Les congés ancienneté sont de 2 tous les 5 ans, cela veux donc dire qu'ils sont due seulement quand il son égal a 2 ; 4 ; 6 ; 8 ect ... La formule que tu ma donnée qui marche très bien et je t'en remercie, me calcul le nombre de congés réel c'est a dire que pour 17 ans d'ancienneté il va me calculer par exemple 7 jours due alors qu'il ne sont pas du avant d'arriver a 8 jours, ce qui correspondrait à 20 ans d'ancienneté. Dans ce cas des 17 ans ne sont due que 6 jours jusqu'au 20 ans d'ancienneté du salarié.
A tu une idée ? j'ai pensé a la formule conditionnel mais je ne suis pas.
Merci d'avance j'espère avoir était clair, n'hésite pas a me poser des questions.
est il possible de garder seulement les jours qui sont due ?
je m'explique :
Les congés ancienneté sont de 2 tous les 5 ans, cela veux donc dire qu'ils sont due seulement quand il son égal a 2 ; 4 ; 6 ; 8 ect ... La formule que tu ma donnée qui marche très bien et je t'en remercie, me calcul le nombre de congés réel c'est a dire que pour 17 ans d'ancienneté il va me calculer par exemple 7 jours due alors qu'il ne sont pas du avant d'arriver a 8 jours, ce qui correspondrait à 20 ans d'ancienneté. Dans ce cas des 17 ans ne sont due que 6 jours jusqu'au 20 ans d'ancienneté du salarié.
A tu une idée ? j'ai pensé a la formule conditionnel mais je ne suis pas.
Merci d'avance j'espère avoir était clair, n'hésite pas a me poser des questions.
Raph04
Messages postés
158
Date d'inscription
lundi 30 juin 2008
Statut
Membre
Dernière intervention
17 mai 2022
24
8 avril 2009 à 14:17
8 avril 2009 à 14:17
Effectivement. Cette formule est en temps réel. Cependant elle se réfère à la date du système de l'ordinateur il me semble. Donc si celle-ci est mal régler cela risque de poser problème.
Pour ceux qui veulent aller plus loin il existe également la formule =MAINTENANT() qui donne la date ET l'heure sous la forme : 08/04/2009 14:16
Et j'ai pu remarquer que celle-ci s'actualise régulièrement (il ne faut pas s'en servir pour connaitre l'heure exacte, mais à partir du moyen ou l'on change des données dans le fichier, elle se met à jour). J'imagine qu'il en ai de même pour la date seulement, mais je ne suis pas rester devant mon PC à minuit pour verifier :-p
Pour ceux qui veulent aller plus loin il existe également la formule =MAINTENANT() qui donne la date ET l'heure sous la forme : 08/04/2009 14:16
Et j'ai pu remarquer que celle-ci s'actualise régulièrement (il ne faut pas s'en servir pour connaitre l'heure exacte, mais à partir du moyen ou l'on change des données dans le fichier, elle se met à jour). J'imagine qu'il en ai de même pour la date seulement, mais je ne suis pas rester devant mon PC à minuit pour verifier :-p
Utilisateur anonyme
8 avril 2009 à 14:57
8 avril 2009 à 14:57
Bonjour,
j'ai cette formule qui répond à tes besoins:
=ENT(ENT((C4-B4)/365)/5)*2
ou C4 est la date de fin de période, B4 la date de début de période
le ENT ne prend que la partie entière d'un nombre décimal, on obtient ainsi 2(jours) par tranche de 5 ans
A+
j'ai cette formule qui répond à tes besoins:
=ENT(ENT((C4-B4)/365)/5)*2
ou C4 est la date de fin de période, B4 la date de début de période
le ENT ne prend que la partie entière d'un nombre décimal, on obtient ainsi 2(jours) par tranche de 5 ans
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
8 avril 2009 à 14:57
8 avril 2009 à 14:57
Bonjour,
La fonction Datedif retourne la différence entre deux dates sous un format de texte il faut donc transformer ce texte en nombre par la fonction Cnum pour effectuer des opérations.
Vous pouvez essayer et vérifier =2*ARRONDI.INF(CNUM(GAUCHE(I3;2))/5;0)
Le nombre de jours pour ancienneté n'est-il pas plafonné? 40 ans donnent-ils droit à 16 jours de congés?
La fonction Datedif retourne la différence entre deux dates sous un format de texte il faut donc transformer ce texte en nombre par la fonction Cnum pour effectuer des opérations.
Vous pouvez essayer et vérifier =2*ARRONDI.INF(CNUM(GAUCHE(I3;2))/5;0)
Le nombre de jours pour ancienneté n'est-il pas plafonné? 40 ans donnent-ils droit à 16 jours de congés?
Merci encore pour toutes vos réponse,
Prinouman : je ne me sert pas de la date de fin de période dans une cellule propre mais je la renseigne directement dans la formule, comme montré si dessus dans mon DATEDIF (yy;mm).
Même en renseignent une cellule par la date de fin soit le 1/06/2009, je n'obtient aucune valeur. Qu'elle était le but de ta manœuvre par rapport à la formule que j'ai deja : =(((AUJOURDHUI()-H3)/365)/5)*2 H3 : date d'entrée, qui elle ne calcul pas les tranches tous les 5 ans ?
Tongtong : En effet mes jour d'ancienneté sont plafonné à 6jour soit un total pour 15 ans d'ancienneté.
Je cherche toujours la solution a ma réponse de calcul par tranche :)
merci a tous de votre efficacité.
Prinouman : je ne me sert pas de la date de fin de période dans une cellule propre mais je la renseigne directement dans la formule, comme montré si dessus dans mon DATEDIF (yy;mm).
Même en renseignent une cellule par la date de fin soit le 1/06/2009, je n'obtient aucune valeur. Qu'elle était le but de ta manœuvre par rapport à la formule que j'ai deja : =(((AUJOURDHUI()-H3)/365)/5)*2 H3 : date d'entrée, qui elle ne calcul pas les tranches tous les 5 ans ?
Tongtong : En effet mes jour d'ancienneté sont plafonné à 6jour soit un total pour 15 ans d'ancienneté.
Je cherche toujours la solution a ma réponse de calcul par tranche :)
merci a tous de votre efficacité.
Utilisateur anonyme
8 avril 2009 à 15:29
8 avril 2009 à 15:29
=ENT(ENT((C4-B4)/365)/5)*2 l'avantage ca n'affiche que 2 jours par tranche de 5 ans
si la différence est de 17 ans il s'affichera 6 (c'est le but recherché?)
pas difficile à adapter au lieu de C4 écrire aujourdhui(), au lieu de B4 écrire H3
Par contre ca ne prend pas (encore) en compte la limitation à 6jours
si la différence est de 17 ans il s'affichera 6 (c'est le but recherché?)
pas difficile à adapter au lieu de C4 écrire aujourdhui(), au lieu de B4 écrire H3
Par contre ca ne prend pas (encore) en compte la limitation à 6jours
Utilisateur anonyme
8 avril 2009 à 15:34
8 avril 2009 à 15:34
Et puis tiens! je suis de bonne humeur, voila avec la limitation
=SI(ENT(ENT((AUJOURDHUI()-H3)/365)/5)*2>6;6;ENT(ENT((AUJOURDHUI()-H3)/365)/5)*2)
A+
=SI(ENT(ENT((AUJOURDHUI()-H3)/365)/5)*2>6;6;ENT(ENT((AUJOURDHUI()-H3)/365)/5)*2)
A+
Utilisateur anonyme
8 avril 2009 à 15:39
8 avril 2009 à 15:39
Re
La proposition de Priouman est simple elle a cependant l'inconvénient de faire l'approximation 1an = 365 jours. Cela peut éventuellement entrainer un litige.
La fonction Aujourdhui() n' est pas adaptée puisque le calcul doit s'effectuer par rapport à une date légale fixe, le 01/06 par exemple.
Pour tenir compte du plafonnement :
=SI(CNUM(GAUCHE(I3;2))>=15;6;2*ARRONDI.INF(CNUM(GAUCHE(I3;2))/5;0))
La proposition de Priouman est simple elle a cependant l'inconvénient de faire l'approximation 1an = 365 jours. Cela peut éventuellement entrainer un litige.
La fonction Aujourdhui() n' est pas adaptée puisque le calcul doit s'effectuer par rapport à une date légale fixe, le 01/06 par exemple.
Pour tenir compte du plafonnement :
=SI(CNUM(GAUCHE(I3;2))>=15;6;2*ARRONDI.INF(CNUM(GAUCHE(I3;2))/5;0))
Qu'elle illumination magnifique que vous avez eu tous les deux :D
Cependant j'ai essayé vos deux formules et les 2 me donnent soit le plafond de 6 soit 0, le juste milieu de 2 ou 4 n'existe pas faut t'il rajouter des condition SI ?
merci ^^
Cependant j'ai essayé vos deux formules et les 2 me donnent soit le plafond de 6 soit 0, le juste milieu de 2 ou 4 n'existe pas faut t'il rajouter des condition SI ?
merci ^^
Sa y est j'ai réussi :)
merci a tous les deux , tongtong ta formules et absolument sans faille ^^
merci :)
merci a tous les deux , tongtong ta formules et absolument sans faille ^^
merci :)
Utilisateur anonyme
8 avril 2009 à 16:04
8 avril 2009 à 16:04
J'obtiens 4 avec les 2 formules pour une date d'entrée au 01/04/1998.
Vous pouvez vérifier l'exactitude de la copie des formules mais aussi regarder si les références correspondent bien.
Vous pouvez vérifier l'exactitude de la copie des formules mais aussi regarder si les références correspondent bien.
Mike-31
Messages postés
18384
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
9 avril 2025
5 127
8 avril 2009 à 22:26
8 avril 2009 à 22:26
Salut tous,
testes cette formule avec date de départ en A1 on verra demain de l'améliorer
=TRONQUE(TRONQUE((AUJOURDHUI()-A1)/365)/5)*2
A+
testes cette formule avec date de départ en A1 on verra demain de l'améliorer
=TRONQUE(TRONQUE((AUJOURDHUI()-A1)/365)/5)*2
A+
Utilisateur anonyme
9 avril 2009 à 14:22
9 avril 2009 à 14:22
Bonjour à tous ,
Comme je l’avais signalé au post 11 la formule =TRONQUE(TRONQUE((AUJOURDHUI()-A1)/365)/5)*2 provoque deux dysfonctionnements.
Il faut remplacer AUJOURDHUI() par Z1 avec Z1=01/06/2009 puisque la référence des calculs est le 01 juin.
Il faut également remplacer 365 par 365,25 pour que les employés entrés entre le 2 et le 5 juin 1994 ne bénéficient pas de 2 jours indus. Tant pis pour eux !
Je n’ai pas vérifié si un bug pouvait se produire dans les années à venir en utilisant la formule de Mike modifiée ainsi : =TRONQUE(TRONQUE((Z1-A1)/365,25)/5)*2
Comme je l’avais signalé au post 11 la formule =TRONQUE(TRONQUE((AUJOURDHUI()-A1)/365)/5)*2 provoque deux dysfonctionnements.
Il faut remplacer AUJOURDHUI() par Z1 avec Z1=01/06/2009 puisque la référence des calculs est le 01 juin.
Il faut également remplacer 365 par 365,25 pour que les employés entrés entre le 2 et le 5 juin 1994 ne bénéficient pas de 2 jours indus. Tant pis pour eux !
Je n’ai pas vérifié si un bug pouvait se produire dans les années à venir en utilisant la formule de Mike modifiée ainsi : =TRONQUE(TRONQUE((Z1-A1)/365,25)/5)*2
Mike-31
Messages postés
18384
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
9 avril 2025
5 127
9 avril 2009 à 21:22
9 avril 2009 à 21:22
Salut tous,
Si les comptes sont aussi précis, il est évidemment bon de diviser par 325,25 puisque tous les quatres ans nous avons une année de 366 et trois de 365 que divise 4 cela donne 365,25.
avec cette formule normalement il ne devrait pas y avoir d'erreur avant 2100 puisque 2100 ne sera pas bissextile puisque qu'une année bissextile est une année qui n'est pas divisible par 100 mais est divisible par 4 et le siécle par 400, il faudra attendre 2400 qui sera bissextile, nous n'aurons plus mal aux dents depuis longtemps
A+
Si les comptes sont aussi précis, il est évidemment bon de diviser par 325,25 puisque tous les quatres ans nous avons une année de 366 et trois de 365 que divise 4 cela donne 365,25.
avec cette formule normalement il ne devrait pas y avoir d'erreur avant 2100 puisque 2100 ne sera pas bissextile puisque qu'une année bissextile est une année qui n'est pas divisible par 100 mais est divisible par 4 et le siécle par 400, il faudra attendre 2400 qui sera bissextile, nous n'aurons plus mal aux dents depuis longtemps
A+