Poser votre question
0

Besoin d'aide pour une formule qui selon moi est complexe

posée 2019-11-22 23:16:01 +0100

Image Gravatar de GreenLaurent

Bonjour,

j'aurais besoin d'aide sur une 2 formules !

Dans le case [ V82 ] j'aimerais une formule qui suis a celle la =SI(ET(V$81>=$F82;V$81<=$G82);1;0) mais en plus que SI dans H82 il est marqué "Travail" cela affiche 1 (1 qui est le numéro de base) ; si "Congés" = 2 ; Si "Maladie" = 3

Et suite a cela j'aimerais que E15 qui est actuellement =SOMMEPROD(($E$82:$E$1558=E12)*($V$82:$V$1558=1)) marque 2 si la case entre V82 et V1558 affiche 2

Car enfaite je veux que le planning affiche une couleur selon l'activité et les heures.

Je m'exprime mal désolé par avance

C:\fakepath\Test (2).ods

J'ai essayer pendant sans mentir 4h mais pas moyen de trouver la formule qui va bien et permet de faire ce que je veux

éditer requalifier signaler fermer fusionner supprimer

2Réponses

0

répondue 2019-11-23 10:36:37 +0100

Image Gravatar de pierre-yves samyn

updated 2019-11-23 10:37:28 +0100

Bonjour

Tout d'abord, avec cette manière de procéder il me semble qu'il faut remplacer

=SI(ET(V$81>=$F82;V$81<=$G82);1;0)

par

=SI(ET(V$81>=$F82;V$81<$G82);1;0)

autrement des quart d'heures successifs sont comptés deux fois...

Sinon sans EQUIV, nom français de MATCH, mais avec un SI tu peux faire :

=SI(ET(V$81>=$F82;V$81<$G82); SI($H82="Travail";1;SI($H82="Congés";2;SI($H82="Maladie";3;0))))

Pour le formatage du planning, il n'est pas nécessaire d'entrer des formules en E15:S77. Tu peux directement calculer dans le formatage conditionnel avec 3 conditions du type :

SOMMEPROD(($E$82:$E$1558=E$12)*(DECALER($U$81;1;EQUIV($C15;$V$81:$CF$81;0);957)=1))

Nota: dans l'exemple joint test.ods j'ai "désactivé" (mis en mode ébauche à l'ouverture) le contrôle défilement qui, dans mon environnement semble buggé.

Cordialement

éditer signaler supprimer permalien plus
0

répondue 2019-11-23 09:08:13 +0100

Image Gravatar de ajlittoz

Pour commencer, je crée une petite table intermédiaire de codage en $W$70:$W$72 avec le contenu "Travail", "Congés", "Maladie", correspondant aux index 1 à 3.

Dans la zone $V$82:$CF$1558, je remplace la formule =IF(AND(V$81>=$F99;V$81<=$G99);1;0) par

=IF(AND(V$81>=$F82;V$81<=$G82;NOT(ISNA(MATCH($H82;$W$70:$W$72;0))));MATCH($H82;$W$70:$W$72;0);0)

La fonction MATCH compare le contenu de la colonne Event à celui de la table de codage et renvoie l'index de la case ou #N/A si le libellé n'a pas été trouvé. Ce résultat est ensuite recopié dans le planning.

  • Nota 1: je n'ai pas trouvé où était le format des cellules du planning pour créer le changement de couleur. Je vous laisse ce travail.

  • Nota 2: la table de codage peut être étendue pour trouver "Travail" et "travail" (avec ou sans majuscule). L'index du libellé ne reflète alors plus le codage. Il faut ajouter une autre colonne contenant la valeur du codage et c'est cette cellule qu'il faudra utiliser dans la formule.

  • Nota 3: la méthode de la table de codage laisse encore la possibilité d'erreur si le libellé entré ne figure pas dans la table. Le mieux est de définir une liste déroulante comme pour les heures de début et de fin. Je vous laisse faire.

Pour montrer à la communauté que la question a trouvé sa réponse, cliquez sur ✓ à côté de la "bonne" réponse, et "votez" en cliquant sur la flèche ^ de toute réponse utile. Ce sont les mécanismes utilisés pour communiquer la qualité des questions et réponses sur ce site. Merci!

éditer signaler supprimer permalien plus
S'identifier/S'inscrire pour répondre

Outils de question

1 suiveurs

Stats

Posée: 2019-11-22 23:16:01 +0100

Consultée: 21 fois

Mise à jour: Nov 23