Fonction SI avec une liste déroulante

Bonjour,

J'aimerai avoir quelques renseignements sur la fonction SI, je n'ai pas trouvé ce que je recherche alors si vous avez des sujets qui peuvent m'aider je suis preneur.

Je suis en étude de transport et on aborde la fiche de paie. J'aimerai pouvoir dispatcher mes différentes heures en fonction du type de conducteur (grand routier/courte distance et messagerie) et de son temps de service du mois.

Par exemple pour la catégorie grande routier comme sur mon tableau si on prend 202h de temps de service dans le mois je voudrai que ça affiche 152h en HN (heures normales), 34h en HE (heures d'équivalences), et 16H en HS2 (heures supplémentaires) à 150% car il y a pas d'HS1 (125%) pour cette catégorie. Je bloque surtout pour réunir toutes ses conditions dans une seule même cellule pour chaque type de conducteur.=SI(L3="Courte Distance";SI(N4-B4>17;17;N4-B4));SI(L3="Messagerie";0;SI(L3="Grand Routier";SI(N4-B4>34;34;N4-B4))) (Formule en B5) ce que j'ai essayé... qui ne marche pas...

Sachant que :

Type Messagerie : jusqu'à 152H = HN; de 152H à 186H = HS1 et au delà HS2

Type courte distance : jusqu'à 152h = HN; de152H à 169H = HE; de 169H à 186H = HS1 et au delà de 186H = HS2

Type Grand routier : jusqu'à 152H = HN; de 152H à 186H = HE et au delà = HS2

Ci-joint mon tableau, dans l'onglet Feuille.

Si quelqu'un à une idée je suis preneur !

Merci d'avance

20fiche-de-paie.xlsx (23.12 Ko)

Bonjour,

Pourquoi 34H en HE alors que la tranche horaire n'est que de 152 à 169H, ce qui ferait 17H au maximum ? Je ne comprend pas trop votre raisonnement pour arriver à ces résultats, si vous pourriez développer, car je ne viens pas du domaine de la comptabilité. Sinon je serais parti sur ces formules, plus simple :

B5 : =SI(L3="Courte Distance";MIN(N4-16;17);"NA")
B6 : =SI(L3="Courte distance";MIN(N4-185;17);MIN(N4-185;34))
B7 : =N4-186

Cdlt,

Bonjour,

Tout d'abord merci pour votre réponse.

34H HE c'est pour le Grand routier seulement, car ça va de 152 à 186H pour ce type.

Et pour le courte distance les HE vont de 152 à 169H.

Et en faite je souhaite que d'après la liste déroulante que j'ai en L3 ça complète automatiquement.

Mais mon soucis est que je n'arrive pas à faire dans une même cellule le =SI(L3="Courte Distance" / =SI(L3="Grand routier" ect... avec des critères précis pour chacun.

Bien cordialement,

Bonjour,

En effet je n'avais pas vu la subtilité et m'étais un peu perdu dans les données. Dans ce cas :

B5 =SI(L3="Courte distance";MIN(N4-152;17);SI(L3="Grand routier";MIN(N4-152;34);"NA"))
B6 =SI(L3="Messagerie";MIN(N4-152;34);SI(L3="Courte distance";MIN(N4-169;17);"NA"))

Je pense qu'il est plus simple de prendre la valeur minimale que de comparer si une différence à une durée seuil, le plus simple étant de prendre la valeur minimale entre la différence des heures et la durée seuil. Ca évite d'imbriquer des SI ou des ET et clarifie un peu plus la formule.

Quoiqu'il en soit votre première formule était éronnée. En effet vous aviez fermé votre premier SI au lieu d'imbriquer le deuxième SI dans la valeur_faux ce qui aurait donné :

=SI(L3="Courte Distance";SI(N4-B4>17;17;N4-B4);SI(L3="Messagerie";0;SI(L3="Grand Routier";SI(N4-B4>34;34;N4-B4))))

De plus, pas besoin de tester le cas où c'est la messagerie car vous souhaitez renvoyer 0 dans tous les autres cas différents de Courte distance et Grand Routier dans ce cas :

=SI(L3="Courte Distance";SI(N4-B4>17;17;N4-B4);SI(L3="Grand Routier";SI(N4-B4>34;34;N4-B4);0))

Dans l'idée c'est bien, mais il faut toujours penser à simplifier au maximum les formules et supprimer l'inutile afin d'éviter de se retrouver dans votre situation, avec des erreurs d’inattentions de parenthèses ou autre qu'il est compliqué d'investiguer et maintenir.

Je reste disponible si besoin.

Cdlt,

Bonjour,

Effectivement c'est beaucoup plus clair avec la fonction SI couplé à du MIM j'y avais pas pensé.

J'ai du coup 2 questions supplémentaires, j'ai changé un peu les formules que tu m'as donnés, mais as tu une astuce pour pas mettre de limite ?

Ex : =SI(L3="Messagerie";MIN(N4-186;500);SI(L3="Courte distance";MIN(N4-186;500);SI(L3="Grand Routier";MIN(N4-186;500);"NA")))

J'ai mis 500 pour pas que ça bloque et que ça puisse aller au-dessus, mais y a t-il quelques chose pour mettre sans limite ?

Et ma deuxième question porte sur le prix de ses heures, j'ai commencé une fonction SI : SI(M9="Non Payés";(L6>0;N7*B6;B6*(L4*1,25))

Mais comment imbriqué mon autre partie de la formule car j'ai le "Non Payés" mais juste après je veux mon test logique (L6>0).

Pour le contexte, je veux que dans cette cellule D6 soit le prix est de 10.25*nbr HS1 *1.25 si en L6 il n'y a pas d'heures de nuit. Si il y a des heures de nuits je veux que ça regarde la cellule M9 pour savoir si les heures sont payes ou pas. Si c'est payé je veux que ça prenne la Tx horaire majoré à 25% en N8 et si elles sont pas payées le taux horaire en N7. Je sais pas si c'est très clair.

J'ai peur de partir dans une fonction SI encore trop longue et qui ne marche pas...

Et as-tu des sujets sur le forum ou autre documentation sur les fonctions de base comme SI/MIN qui pourrait m'être utile pour ce genre de problème ect... ?

Ci-joint l'Excel actuel.

7fiche-de-paie.xlsx (22.97 Ko)

Bonjour,

Si vous ne souhaitez pas de limite alors il ne faut pas de minimum car c'est la base de la différence que nous allons faire systématiquement le calcul donc :

=SI(OU(L3="Messagerie";L3="Courte distance";L3="Grand Routier");N4-186;"NA")

Ici j'ai mis le OU car vous utilisez la même formule pour l"argument si_vrai, il n'y a pas d'intérêt qu'elle soit si longue. Dans le cas de votre fichier vous pourriez même mettre :

=SI(L3<>"";N4-186;"NA")

En effet, Messagerie, Courte Distance ou Grand Routier sont les 3 seules valeurs pouvant être prises par L3. Donc vous avez soit L3 est remplie (donc différente de vide <>"") dans ce cas N4-186, soit elle est vide dans ce cas "NA".

Pour votre seconde problématique :

=SIERREUR(SI(L6=0;10,25*B6*1,25;SI(M9="Payés";N8*B6;N7*B6));"NA")

Vous cherchez tout d'abord à vérifier si L6 est vide ou 0, dans ce cas ont réalise le calcul demandé. Si L6 n'est pas vide ou égal à 0 alors on regarde si les heures inscrites sont payées en M9 et applique la formule correspondante. Dans le cas contraire, implicitement non payées car ce sont les seules valeurs possibles de M9, alors ont réalise l'autre calcul. Dans le cas où une erreur se produit dans le calcul , par exemple si B6 = "NA" alors on affiche "NA".

Cdlt,

Rechercher des sujets similaires à "fonction liste deroulante"