Fonctions si imbriquées

Y compris Power BI, Power Query et toute autre question en lien avec Excel
C
CécileH
Jeune membre
Jeune membre
Messages : 14
Inscrit le : 29 août 2013
Version d'Excel : 2013

Message par CécileH » 18 février 2016, 12:44

Bonjour,

J'aurais besoin d'aide sur le fichier en PJ.

J'ai plusieurs situations en fonction de dates d'entées, de sortie, de fin de validité, etc. et je cherche à calculer ce que vaut le salarié (nb coeff dans le fichier).

Les différentes situations rencontrées :
- salarié présent toute l'année 2015, attestation valable au 31/12/2015 donc vaut 1
- salarié présent toute l'année 2015, a pas forcément de date de fin de validité donc attestation valable toute sa vie donc vaut 1
- salarié sorti avant le 31/12/2015 : nombre de jours calendaires entre le 01/01/2015 et la date de sortie
- salarié arrivé avant le 31/12/2015 mais présent au 31/12/2015: nombre de jours calendaires entre la date d'entrée (J) et le 31/12/2015
- salarié arrivé et sorti entre le 01/01/2015 et le 31/12/2015 : nombre de jours calendaires entre date d'entrée (J) et date de sortie(M)

J'ai trouvée une formule qui me semble correcte mais lorsque je l'évalue, il me semble qu'il y a un problème dans mon intervalle "01/01/2015"<....<"31/12/2015".


Je vous remercie d'avance de votre aide.

Cécile
fichier test DOETH.xlsx
(10.54 Kio) Téléchargé 11 fois
V
VBABEGINNER
Membre dévoué
Membre dévoué
Messages : 725
Inscrit le : 5 novembre 2014
Version d'Excel : 2010

Message par VBABEGINNER » 18 février 2016, 12:52

Bonjour,

Je n'ai pas le temps de revoir l'entièreté de ta formule mais un gros point d'attention m'apparait immédiatement :

lorsque tu mets : "31/12/2015" , il me semble que pour Excel ce n'est plus une date dont tu parles mais du TEXTE ! Tes comparaisons ( <; >; <>; ... ) en sont donc altérées !

Une option serait de remplacer la date par son " numéro " Exemple : 31/12/2015 = 42369

Bonne continuation,


Cordialement ,


Vbabeginner
C
CécileH
Jeune membre
Jeune membre
Messages : 14
Inscrit le : 29 août 2013
Version d'Excel : 2013

Message par CécileH » 18 février 2016, 14:25

J'ai essayé mais ça ne fonctionne pas...

Au début j'avais cette formule avec <"31/12/2015":

=SI(ESTVIDE(J9);0;SI(I9<"31/12/2015"*ET(I9<>"");(DATEDIF("01/01/2015";MIN(I9;M9);"d")/365);SI((ESTVIDE(M9))*ET(H9<>"");1;DATEDIF(MAX("01/01/2015";J9);M9;"d")/365)))

et en évaluant la formule elle est VRAI donc ça prend bien en compte la date... où je n'ai rien compris.

Je veux juste ajouter le cas d'un salarié qui arriverait en cours d'année mais je ne vois pas comment... Du moins je ne vois plus avec tous ces si...
V
VBABEGINNER
Membre dévoué
Membre dévoué
Messages : 725
Inscrit le : 5 novembre 2014
Version d'Excel : 2010

Message par VBABEGINNER » 18 février 2016, 15:54

Re,

Ce n'est pas parce qu'une formule te donne le résultat que tu désires qu'elle est nécessairement bonne ! :D

Pour te convaincre de ce que je t'ai dis plus haut : tu peux changer tous tes " 31/01/2015 " par " blablablabla " et tu auras le même résultat ! :lol:


Cordialement,


Vbabeginner
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message