2 possibilités, 3 catégories et 2 conditions

Résolu
HoustonFrenchcat Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour à tous,

Je recherche une formule me permettant de conjuguer 2 possibilités, 3 catégories et 2 conditions!
Je m'explique:

La cellule A1="CDI" ou "CDD".
La cellule B1="Catégorie A" ou "Catégorie B" ou "Catégorie C"
La cellule C1= durée du préavis (les durées sont écrite sous le format "2 ans, 3 mois, 0 jour", par exemple)
La cellule D1=cellule où je cherche à utiliser la formule.

1ère possibilité: Si A1="CDD",
le préavis est nul (écrit "0 an, 0 mois, 0 jour")

2e possibilité: Si A1="CDI",
--> le préavis est de 3 mois s'il s'agit d'une catégorie A;
--> le préavis est de 2 mois s'il s'agit d'une catégorie B ou d'une catégorie C, et qu'elle a travaillé >=2 ans;
--> le préavis est de 1 mois s'il s'agit d'une catégorie B ou d'une catégorie C, et qu'elle a travaillé <2 ans.

Je réfléchis à une formule du type suivant:
SI(A1="CDD";"0 an, 0 mois, 0 jour";SI(A1="CDI";(SI(OU(B1="Catégorie A"";"0 an, 3 mois, 0 jour";SI(OU(B1="Catégorie B";B1="Catégorie C");SI(OU(C1<"2 ans, 0 mois, 0 jour";C1>="2 ans, 0 mois, 0 jour");"0 an, 1 mois, 0 jour";"0 an, 2 mois, 0 jour")))))

Je crois que j'embrouille les SI ni les OU... Je dois me compliquer la vie, je suppose!
Quelqu'un aurait-il une idée pour résoudre ce problème? Merci beaucoup d'avance!
A voir également:

3 réponses

sipherion Messages postés 1809 Date d'inscription   Statut Membre Dernière intervention   286
 
Bonjour,

Un conseil : pas sur Excel ! Si c'est une gestion de personnel que tu recherches, Excel pourrait ne pas être adapté à tes besoins et créer des problèmes d'ordre juridique. Il existe des outils qui permettent de gérer ça un peu mieux.

Sinon sur ta formule, je ne comprend pas la comparaison C1<"2 ans, 0 mois, 0 jour" qui ne peut pas fonctionner (enfin je crois, en tout cas en la mettant telle qu'elle dans Excel il ne me l'a pas convertie en quelque chose d'exploitable.
Et ça OU(B1="Catégorie A"";"0 an, 3 mois, 0 jour" c'est faux, tu as un OU mais pas fermé, et l'instruction suivante semble concerner ton SI

0
HoustonFrenchcat Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour et merci pour ta réponse.
Je te rassure, il ne s'agit pas d'un tableau de gestion mais d'un tableau récapitulatif personnel.

D'autre part, concernant la formule, j'essaye de suivre la logique excel: test logique, valeur si vrai, valeur si faux:

Test logique:
SI(A1="CDD";

Valeur si vrai:
"0 an, 0 mois, 0 jour";

Valeur si faux:
SI(A1="CDI";

Et à l'intérieur de cette partie, de nouveau:
Test logique:
(SI(OU(B1="Catégorie A";

Valeur si vrai:
"0 an, 3 mois, 0 jour";

Valeur si faux:
SI(OU(B1="Catégorie B";B1="Catégorie C");

Et à l'intérieur de cette sous-partie, de nouveau: test logique, valeur si vrai, valeur si faux
SI(OU(C1<"2 ans, 0 mois, 0 jour";C1>="2 ans, 0 mois, 0 jour");"0 an, 1 mois, 0 jour";"0 an, 2 mois, 0 jour")))))

Je ne sais pas si je fais mieux comprendre mon raisonnement?
0
sipherion Messages postés 1809 Date d'inscription   Statut Membre Dernière intervention   286
 
Oui, mais ça c'est faux :

(SI(OU(B1="Catégorie A"";"0 an, 3 mois, 0 jour";

Ton OU attend des tests logiques. Le premier, c'est B1="Catégorie A", mais le deuxième, c'est quoi ? "0 an, 3 mois, 0 jour"; n'est pas un test logique, donc soit tu rajoutes un test, soit tu fermes la parenthèse de ton OU (ce qui au passage le rendrait inutile)
0
HoustonFrenchcat Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   > sipherion Messages postés 1809 Date d'inscription   Statut Membre Dernière intervention  
 
D'accord...
En fait, je pensais comme ceci:
soit catégorie A, soit catégorie B ou catégorie C.
D'où l'utilisation du OU.

J'ai essayé en supprimant le OU de la formule au niveau de la catégorie A, mais la formule n'est toujours pas bonne. Je continue à chercher...
0
DjiDji59430 Messages postés 4253 Date d'inscription   Statut Membre Dernière intervention   700
 
Bonjour,


C'est dans quelle cellule qu'est indiqué qu"elle a travaillé plus de 2 ans ??

Quand on joint un fichier-test, (avec TOUTES les explications ou les résultats souhaités) ou mieux, si c'est possible, le fichier concerné, c'est plus commode pour les intervenants. Et tu as plus de chances que quelqu'un s’intéresse à ton problème

1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes s'affiche le lien en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans la discussion, et, dans ton message de réponse, tu fais : "Coller".

Cordialement.
0
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182
 
Bonjour,

Peux-tu dire en termes "clairs" (et non-pas en formule) ce que tu attends dans la colonne D ? C'est très confus à trouver.
0
HoustonFrenchcat Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

la colonne D me donneras automatiquement la durée du préavis en fonction des critères suivants:

- si CDD, pas de préavis (0 an, 0 mois, 0 jour);
- si CDI, selon la catégorie (A, B ou C);
- si catégorie A, préavis de 3 mois (écrit sous forme 0 an, 3 mois, 0 jour);
- si catégorie B ou catégorie C, préavis de 2 mois si la personne a travaillé moins de 2 ans;
- si catégorie B ou catégorie C, préavis de 1 mois si la personne a travaillé 2 ans ou plus.

(Pour des raisons d'addition de dates dans d'autres colonnes, je tiens à garder le format "0 an, 3 mois, 0 jour".)
0
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182
 
Du coup, je ne vois pas la distinction entre la colonne C et la colonne D
0
HoustonFrenchcat Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
Tu as tout à fait raison, je me suis mal exprimé. (A force de cogiter sur ce problème, je m'emmêle les pinceaux!)

La colonne C me donne la durée durant laquelle la personne a travaillé dans l'entreprise
La colonne D me donne la durée du préavis.

Sorry pour la confusion !
0
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182
 
OK, vu les conditions, je propose, plutôt que d'enchaîner les SI() imbriqués, d'utiliser la fonction RECHERCHEV() !

L'idée serait de faire quelque part un petit tableau avec deux colonnes : Catégorie du CDI et Préavis. En première ligne la catégorie A, puis B, puis C.
Dans mon exemple de formule, je vais partir du principe que ce tableau est renseigné de E1 à F3 (sans ligne de titre pour ses colonnes). Il faudra donc l'adapter.
=SI(A1="CDD";"0 an, 0 mois, 0 jour";RECHERCHEV(B1;E$1:F$3;2;FAUX))

Le fonctionnement de la formule :

Le SI() permet de distinguer si tu as affaire à un CDD ou un CDI. Si c'est un CDD, il renvoie directement qu'il n'y a pas de préavis.
Autrement, la formule va pour chaque ligne regarder ce qui est renseigné en colonne B (le type de CDI) et rechercher dans le tableau défini de E1 à F3 le préavis associé (le 2 fait référence à la deuxième colonne de la sélection), le "FAUX" indique qu'il doit rechercher la valeur exacte renseignée en B et non-pas une valeur proche.

Si tu renseignes un CDI avec un autre type que A,B ou C (erreur de typo), la fonction te renverra la valeur "N#A", indiquant qu'il y a un problème.
De même, si à cause d'une erreur de typo ou si introduits des contrats type "Intérim", elle ne sera plus valable.


A la place du RECHERCHEV(), on aurait très bien pu imbriquer plusieurs SI() pour obtenir quelque-chose de cette allure :
SI(A1="CDD";...;SI(B1="A";...;SI(B1="B";...;SI(B1="C";...;"Erreur"))))
0
HoustonFrenchcat Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   > Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention  
 
Bonjour Arkana,

Je voulais te remercier pour ton aide. Après quelques jours, j'ai repris le tableau et en relisant ta réponse, j'ai fini par avoir un déclic.

J'ai trouvé une formule qui a l'air de bien fonctionner:
=SI(T19="";"";SI(ET(T19<>"";B19="CDD");W$9;SI(C19="Catégorie A";W$6;SI(ET(OU(C19="Catégorie B";C19="Catégorie C");U19<"2 ans, 0 mois, 0 jour");W$7;W$8))))

Je pouvais difficilement utiliser la fonction RECHERCHEV() qui pourtant m'aurait été bien utile car le problème que j'ai soulevé faisait partie d'un ensemble plus grand et plus complexe (les colonnes et les cellules visées n'étaient pas forcément les unes à côté des autres).

J'ai également utilisé des colonnes masquées pour utiliser des formules qui autrement auraient été trop longues avec des SI().

Bref, j'ai apprécié le temps que tu as passé sur mon problème !
Merci encore!
0