Datedif avec plusieurs conditions Excel 2010
Résolu/Fermé
clocliquot
Messages postés
6
Date d'inscription
vendredi 16 mai 2014
Statut
Membre
Dernière intervention
3 juin 2014
-
16 mai 2014 à 10:44
clocliquot Messages postés 6 Date d'inscription vendredi 16 mai 2014 Statut Membre Dernière intervention 3 juin 2014 - 16 mai 2014 à 15:56
clocliquot Messages postés 6 Date d'inscription vendredi 16 mai 2014 Statut Membre Dernière intervention 3 juin 2014 - 16 mai 2014 à 15:56
A voir également:
- Datedif excel 2010
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Clé activation office 2010 gratuit - Télécharger - Sécurité
- Word et excel gratuit - Guide
7 réponses
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
16 mai 2014 à 10:55
16 mai 2014 à 10:55
Bonjour,
pour la première ligne
=DATEDIF(A2;B2;"m")
mais la réponse n'est certainement pas complète, je pense que tu cherche quelque chose de plus complexe. Si la date en B est antérieure au 01/09/2014 il faut retenir 01/09/2014 puis compter le nombre de mois jusqu'au 31/12/2014 puis ajouter le nombre de mois du 01/01/2015 au 31/08/2015 même si cette dernière est postérieure
pour la première ligne
=DATEDIF(A2;B2;"m")
mais la réponse n'est certainement pas complète, je pense que tu cherche quelque chose de plus complexe. Si la date en B est antérieure au 01/09/2014 il faut retenir 01/09/2014 puis compter le nombre de mois jusqu'au 31/12/2014 puis ajouter le nombre de mois du 01/01/2015 au 31/08/2015 même si cette dernière est postérieure
clocliquot
Messages postés
6
Date d'inscription
vendredi 16 mai 2014
Statut
Membre
Dernière intervention
3 juin 2014
16 mai 2014 à 11:13
16 mai 2014 à 11:13
Merci Mike pour ton retour.
Malheureusement j'ai déjà testé la formule =DATEDIF(A2;B2;"m") qui me donnera le nombre total de mois pendant lequel l'employé était présent dans l'entreprise. En l'occurence pour mon exemple cela me donne le chiffre 5.
pour info, je préfère d'ailleurs utilisé :
=DATEDIF(A2;B2;"d")/29 qui me donne quelque chose de plus logique à savoir 6.
Mais cela ne résout pas mon problème car je souhaite uniquement avoir en colonne C le nombre de mois effectué pendant la période allant du 01/09/2014 au 31/12/2014. (soit 4 mois maximum)
& en colonne D le nombre de mois effectués pdt la période allant du 01/01/2015 au 31/08/2015.
pour mon 1er employé la réponse sera donc 2 mois.
Alors certes, il me suffit ensuite de retirer 2 mois pour mon 1er employé. Mais aucun des employés n'a le même schéma de vie.
par exemple dès le second employé, je tombe sur 17 mois en colonne C ( ce n'est pas ce qui m'interesse).
Le but de la manoeuvre étant d'avoir une formule qui me permettrait d'automatiser les conditions du calcul du nombre de mois seulement pour les périodes qui m'interessent.
merci
Malheureusement j'ai déjà testé la formule =DATEDIF(A2;B2;"m") qui me donnera le nombre total de mois pendant lequel l'employé était présent dans l'entreprise. En l'occurence pour mon exemple cela me donne le chiffre 5.
pour info, je préfère d'ailleurs utilisé :
=DATEDIF(A2;B2;"d")/29 qui me donne quelque chose de plus logique à savoir 6.
Mais cela ne résout pas mon problème car je souhaite uniquement avoir en colonne C le nombre de mois effectué pendant la période allant du 01/09/2014 au 31/12/2014. (soit 4 mois maximum)
& en colonne D le nombre de mois effectués pdt la période allant du 01/01/2015 au 31/08/2015.
pour mon 1er employé la réponse sera donc 2 mois.
Alors certes, il me suffit ensuite de retirer 2 mois pour mon 1er employé. Mais aucun des employés n'a le même schéma de vie.
par exemple dès le second employé, je tombe sur 17 mois en colonne C ( ce n'est pas ce qui m'interesse).
Le but de la manoeuvre étant d'avoir une formule qui me permettrait d'automatiser les conditions du calcul du nombre de mois seulement pour les périodes qui m'interessent.
merci
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
16 mai 2014 à 11:30
16 mai 2014 à 11:30
Re,
oui c'est ce que j'avais compris, la formule est plus complexe parce qu'il faut tester chaque date exemple pour le premier test date en A2
=SI(A2<DATEVAL("01/09/2014");DATEVAL("01/09/2014");A2)
idem pour la date en C2
=SI(B2>DATEVAL("31/12/2014");DATEVAL("31/12/2014");B2)
ensuite il faut faire le test pour les dates de début d'année. Là je n'ai pas le temps mais si tu n'as pas de réponse, je reviens dans l'après midi
oui c'est ce que j'avais compris, la formule est plus complexe parce qu'il faut tester chaque date exemple pour le premier test date en A2
=SI(A2<DATEVAL("01/09/2014");DATEVAL("01/09/2014");A2)
idem pour la date en C2
=SI(B2>DATEVAL("31/12/2014");DATEVAL("31/12/2014");B2)
ensuite il faut faire le test pour les dates de début d'année. Là je n'ai pas le temps mais si tu n'as pas de réponse, je reviens dans l'après midi
clocliquot
Messages postés
6
Date d'inscription
vendredi 16 mai 2014
Statut
Membre
Dernière intervention
3 juin 2014
16 mai 2014 à 12:12
16 mai 2014 à 12:12
ooohhhh !!
mon petit cerveau embrumé à mis du tps à connecter. Mais ça y ait j'ai compris !
on rajoute donc 4 colonnes supplémentaires de "tests" avec tes formules pour "bloquer" les dates sur les zones qui m'interessent et ensuite dans une autre colonne on refait la formule DATEDIF... entre ces nouvelles zones "tests".
Très très très malin.
MERCI INFINIMENT !
mon petit cerveau embrumé à mis du tps à connecter. Mais ça y ait j'ai compris !
on rajoute donc 4 colonnes supplémentaires de "tests" avec tes formules pour "bloquer" les dates sur les zones qui m'interessent et ensuite dans une autre colonne on refait la formule DATEDIF... entre ces nouvelles zones "tests".
Très très très malin.
MERCI INFINIMENT !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
16 mai 2014 à 14:30
16 mai 2014 à 14:30
Re,
C'est cela, pour des données en A2 et B2, tu peux en E2 par exemple copier cette formule qui définira le premier jour de référence pour ton premier calcul
=SI(ET(A2>=DATEVAL("01/09/2014");A2<=DATEVAL("31/12/2014"));A2;SI(A2<DATEVAL("01/09/2014");DATEVAL("01/09/2014");""))
en F2 pour le dernier jour de référence
=SI(ET(B2<=DATEVAL("31/12/2014");B2>DATEVAL("01/09/2014"));B2;SI(B2>=DATEVAL("31/12/2014");DATEVAL("31/12/2014");""))
ensuite pour compter les jours entre les deux dates de référence exemple en G2
=SI(ET(E2<>"";F2<>"");F2-E2;"")
ou pour compter les mois entier
=SI(ET(E2<>"";F2<>"");DATEDIF(E2;F2;"m");"")
ou si tu préfères le nombre de jours / 29
=SI(ET(E2<>"";F2<>"");(F2-E2)/29;"") mais si c'est pour un calcul moyen mensuel il conviendrai de diviser par 30,42
si tu souhaites éviter les deux colonnes E et F, rien ne t'empêche d'imbriquer les formule
ce qui donnera comme formule pour calcul de nombre de jours
=SI(ET(SI(ET(A2>=DATEVAL("01/09/2014");A2<=DATEVAL("31/12/2014"));A2;SI(A2<DATEVAL("01/09/2014");DATEVAL("01/09/2014");""))<>"";SI(ET(B2<=DATEVAL("31/12/2014");B2>DATEVAL("01/09/2014"));B2;SI(B2>=DATEVAL("31/12/2014");DATEVAL("31/12/2014");""))<>"");SI(ET(B2<=DATEVAL("31/12/2014");B2>DATEVAL("01/09/2014"));B2;SI(B2>=DATEVAL("31/12/2014");DATEVAL("31/12/2014");""))-SI(ET(A2>=DATEVAL("01/09/2014");A2<=DATEVAL("31/12/2014"));A2;SI(A2<DATEVAL("01/09/2014");DATEVAL("01/09/2014");""));"")
idem pour calculer le nombre de mois en entreprise exemple en L2 pour la première date de référence
=SI(ET(A2>=DATEVAL("01/01/2015");A2<=DATEVAL("31/08/2015"));A2;SI(A2<DATEVAL("01/01/2015");DATEVAL("01/01/2015");""))
pour la deuxième ex. en M2
=SI(ET(B2<=DATEVAL("31/08/2015");B2>DATEVAL("01/01/2015"));B2;SI(B2>=DATEVAL("31/08/2015");DATEVAL("31/08/2015");""))
et même formule pour calculer le nombre de jour entre les deux
=SI(ET(L2<>"";M2<>"");M2-L2;"")
Voilà à toi de jouer
C'est cela, pour des données en A2 et B2, tu peux en E2 par exemple copier cette formule qui définira le premier jour de référence pour ton premier calcul
=SI(ET(A2>=DATEVAL("01/09/2014");A2<=DATEVAL("31/12/2014"));A2;SI(A2<DATEVAL("01/09/2014");DATEVAL("01/09/2014");""))
en F2 pour le dernier jour de référence
=SI(ET(B2<=DATEVAL("31/12/2014");B2>DATEVAL("01/09/2014"));B2;SI(B2>=DATEVAL("31/12/2014");DATEVAL("31/12/2014");""))
ensuite pour compter les jours entre les deux dates de référence exemple en G2
=SI(ET(E2<>"";F2<>"");F2-E2;"")
ou pour compter les mois entier
=SI(ET(E2<>"";F2<>"");DATEDIF(E2;F2;"m");"")
ou si tu préfères le nombre de jours / 29
=SI(ET(E2<>"";F2<>"");(F2-E2)/29;"") mais si c'est pour un calcul moyen mensuel il conviendrai de diviser par 30,42
si tu souhaites éviter les deux colonnes E et F, rien ne t'empêche d'imbriquer les formule
ce qui donnera comme formule pour calcul de nombre de jours
=SI(ET(SI(ET(A2>=DATEVAL("01/09/2014");A2<=DATEVAL("31/12/2014"));A2;SI(A2<DATEVAL("01/09/2014");DATEVAL("01/09/2014");""))<>"";SI(ET(B2<=DATEVAL("31/12/2014");B2>DATEVAL("01/09/2014"));B2;SI(B2>=DATEVAL("31/12/2014");DATEVAL("31/12/2014");""))<>"");SI(ET(B2<=DATEVAL("31/12/2014");B2>DATEVAL("01/09/2014"));B2;SI(B2>=DATEVAL("31/12/2014");DATEVAL("31/12/2014");""))-SI(ET(A2>=DATEVAL("01/09/2014");A2<=DATEVAL("31/12/2014"));A2;SI(A2<DATEVAL("01/09/2014");DATEVAL("01/09/2014");""));"")
idem pour calculer le nombre de mois en entreprise exemple en L2 pour la première date de référence
=SI(ET(A2>=DATEVAL("01/01/2015");A2<=DATEVAL("31/08/2015"));A2;SI(A2<DATEVAL("01/01/2015");DATEVAL("01/01/2015");""))
pour la deuxième ex. en M2
=SI(ET(B2<=DATEVAL("31/08/2015");B2>DATEVAL("01/01/2015"));B2;SI(B2>=DATEVAL("31/08/2015");DATEVAL("31/08/2015");""))
et même formule pour calculer le nombre de jour entre les deux
=SI(ET(L2<>"";M2<>"");M2-L2;"")
Voilà à toi de jouer
tontong
Messages postés
2563
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
17 octobre 2024
1 058
16 mai 2014 à 14:38
16 mai 2014 à 14:38
Bonjour,
Je n'ai peut-être pas tout compris mais j'avais vu les choses autrement.
On peut exprimer les conditions avec les fonctions Min et Max. Pour que Datedif considère le jour de fin comme inclus il faut ajouter 1 au deuxième argument.
Avec les dates de consigne C2=01/09/2014 et C3=31/12/2014
En C4:
=SI(ET(A4<>"";B4<>"";MIN(B4;$C$3)>MAX(A4;$C$2));DATEDIF(MAX(A4;$C$2);MIN(B4;$C$3)+1;"m");"")
Formules analogues en colonne D.
Je n'ai peut-être pas tout compris mais j'avais vu les choses autrement.
On peut exprimer les conditions avec les fonctions Min et Max. Pour que Datedif considère le jour de fin comme inclus il faut ajouter 1 au deuxième argument.
Avec les dates de consigne C2=01/09/2014 et C3=31/12/2014
En C4:
=SI(ET(A4<>"";B4<>"";MIN(B4;$C$3)>MAX(A4;$C$2));DATEDIF(MAX(A4;$C$2);MIN(B4;$C$3)+1;"m");"")
Formules analogues en colonne D.
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
Modifié par Mike-31 le 16/05/2014 à 15:01
Modifié par Mike-31 le 16/05/2014 à 15:01
Salut Tontong,
Oui bien vu, j'avais exploité trop rapidement cette idée mais faute de temps je suis resté basique
Cordialement
Oui bien vu, j'avais exploité trop rapidement cette idée mais faute de temps je suis resté basique
Cordialement
clocliquot
Messages postés
6
Date d'inscription
vendredi 16 mai 2014
Statut
Membre
Dernière intervention
3 juin 2014
16 mai 2014 à 15:56
16 mai 2014 à 15:56
merci vraiment bcp Mike et Tontong pour ces 2 solutions qui fonctionnent parfaitement !
par contre, jamais je ne pourrai faire croire que j'ai trouvé ça toute seule tellement c fort mais bon.. lol
vraiment merci merci merci !
par contre, jamais je ne pourrai faire croire que j'ai trouvé ça toute seule tellement c fort mais bon.. lol
vraiment merci merci merci !