Fonction SI() faisant appel uniquement à des cellules pour le test logique

Résolu/Fermé
gurumiam Messages postés 16 Date d'inscription lundi 6 avril 2020 Statut Membre Dernière intervention 18 août 2021 - Modifié le 17 août 2021 à 19:52
Raymond PENTIER Messages postés 58764 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 décembre 2024 - 18 août 2021 à 14:56
Bonjour,

Je suis coincée sur un projet d'outil... je souhaite intégrer une mention en fonction d'un résultat.
Mais je souhaite ne faire appel qu'à d'autres cellules pour le test logique.
J'ai en I1 la direction de l'objectif (qui est différent en fonction de la ligne), en J1 la valeur de l'objectif, en K1 à V1 les résultats mensuels.
J'ai besoin de faire apparaitre un texte en W1 en fonction de plusieurs critères, W1 doit mentionner "Yes" si toutes ces conditions sont remplies :
1. T1 est soit meilleur que la moyenne des 3 mois précédents (Q1 à S1), soit à l'objectif
2. T2 est soit meilleur que la moyenne des 3 mois précédents (Q1 à S1), soit à l'objectif
3. T3 est soit meilleur que la moyenne des 3 mois précédents (Q1 à S1), soit à l'objectif

Je peux bien-sûr imbriquer une suite de SI(), ou SI.CONDITIONS() en précisant systématiquement la direction de l'objectif (ex : SI(I1="<=";ET(OU(T1<=J1;T1<MOYENNE(K1:V1);"Yes";"No") et ainsi de suite
Mais j'aimerai quelque chose de plus propre.

J'ai bien tenté quelque chose qui marche avec NB.SI(), mais la formule ne fonctionne pas avec SI() : SI(OU(T1&I1&J1;T1&GAUCHE(I1)&MOYENNE(K1:V1));"Yes";"No")
Je sais, il n'y a pas mes conditions précitées 1. 2. 3. mais j'ai déjà besoin de faire le premier test logique:))

(PI- je dois utiliser GAUCHE() car le test avec la moyenne doit être strictement meilleur, et non meilleur ou égal, alors que la direction de l'objectif est le plus souvent "<=" ou ">=")

Et je ne peux pas utiliser de macros (si ça avait été possible ?) car les utilisateurs du fichier seront nombreux, avec différentes versions d'Excel, j'ai eu de mauvaises surprises par le passé.

Voilà, j'espère que c'est assez précis...

Merci de votre aide !
A voir également:

11 réponses

Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 452
Modifié le 17 août 2021 à 20:54
Bonjour,
Se serait plus simple de comprendre avec le fichier comme exemple, se qui évite de devoir tous construire pour arrivée à tout déchiffrer..
Et un petit exemple manuel serait le bien venu...!
Le mettre sur https://www.cjoint.com/ ou https://mon-partage.fr/ et poster le lien.
0
via55 Messages postés 14502 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 9 décembre 2024 2 737
17 août 2021 à 20:49
Bonsoir

Assez précis peut être mais peu compréhensible et traitable sans l'exemple du fichier réel
Poste un exemple de ton fichier (allégé et anonymisé si nécessaire) sur cjoint.com, fais crééer un lien que tu copies et reviens coller ici

Cdlmnt
Via
0
Raymond PENTIER Messages postés 58764 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 décembre 2024 17 255
18 août 2021 à 01:47
Bonjour.

En attendant ton fichier, réclamé par mes petits camarades Le Pingou et Via, je peux déjà t'indiquer que, en raison de ta remarque "les utilisateurs du fichier seront nombreux, avec différentes versions d'Excel" , il te faut exclure l'idée d'utiliser la fonction SI.CONDITIONS() qui est disponible dans très peu de versions, récentes de surcroit.
0
gurumiam Messages postés 16 Date d'inscription lundi 6 avril 2020 Statut Membre Dernière intervention 18 août 2021
18 août 2021 à 09:54
Bonjour et merci à tous les 3 de votre réactivité,

Voici le lien vers le fichier : https://www.cjoint.com/c/KHsh0cEnzzg

@Raymond, merci je n'utiliserai plus SI.CONDITIONS() à l'avenir dans ce type de fichiers. Sais-tu si la fonction SI.MULTIPLE() est également à éviter ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PapyLuc51 Messages postés 4423 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 19 décembre 2024 1 449
18 août 2021 à 11:29
Bonjour gurumiam

Salutations à Le Pingou, Via et Raymond

Je ne sais si j'ai tout compris ; je propose

=SI(ET(T1>=MOYENNE(Q1:S1);U1>=MOYENNE(Q1:S1);V1>=MOYENNE(Q1:S1));"Yes";"No")

ou une autre

=SI(ET(T1>=(Q1+R1+S1)/3;U1>=(Q1+R1+S1)/3;V1>=(Q1+R1+S1)/3);"Yes";"No")

Et en ce qui concerne la question sur SI.MULTIPLE() c'est effectivement la même chose

Une possibilité pour que tout le monde utilise ces fonctions c'est de passer à LibreOffice Calc

Cordialement
0
gurumiam Messages postés 16 Date d'inscription lundi 6 avril 2020 Statut Membre Dernière intervention 18 août 2021
18 août 2021 à 12:56
Bonjour PapyLuc,

Merci pour ta réponse
Je doit cependant éviter d'inscrire la direction de l'objectif (figurant en I1) dans le test logique, car c'est une donnée qui est amenée à changer… d'où mon problème.
Je souhaite donc faire appel à I1 pour donner la direction du test logique, comme ça il s'adapte automatiquement (si <= alors il test si c'est inférieur, si >= alors il test si c'est supérieur)

D'autres pistes...?

Cordialement
0
PapyLuc51 Messages postés 4423 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 19 décembre 2024 1 449
18 août 2021 à 13:33
Je n'avais effectivement pas tout compris.

Tu veux dire J1 pour l'objectif (5%) à atteindre et non pas I1 où est inscrit <=

Chaque cellule doit donc être supérieur à la MOYENNE(Q1:S1) ou égale à J1

Si oui alors

=SI(ET(OU(T1=J1;T1>MOYENNE(Q1:S1));OU(U1=J1;U1>MOYENNE(Q1:S1));OU(V1=J1;V1>MOYENNE(Q1:S1)));"Yes";"No")

sinon décortique un peu plus en détail ce que tu cherches.

Cordialement
0
gurumiam Messages postés 16 Date d'inscription lundi 6 avril 2020 Statut Membre Dernière intervention 18 août 2021
18 août 2021 à 13:45
Et non, justement I1 et J1 changent.

Je peux avoir des objectifs très différents dont la direction change :
un objectif <=5%
ou un autre >=90%
donc j'ai besoin de faire appel à I1 pour connaitre la direction du test logique (et bien-sûr comme tu le mentionne à J1 pour la valeur de référence)

Ta proposition ne marche malheureusement que pour une seule direction d'objectif, et non en fonction de la saisie en I1...
C'est pourquoi je cherche le moyen de n'inscrire dans la formule aucun signe de direction

Cordialement
0
via55 Messages postés 14502 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 9 décembre 2024 2 737
18 août 2021 à 13:58
Re

Sous résèrve que j'ai bien compris ce que tu voulais, essaye la formule :
=SI(ET(OU(NB.SI(T1;GAUCHE(I1)&J1);NB.SI(T1;GAUCHE(I1)&MOYENNE(Q1:S1))); OU(NB.SI(U1;GAUCHE(I1)&J1);NB.SI(U1;GAUCHE(I1)&MOYENNE(Q1:S1))); OU(NB.SI(V1;GAUCHE(I1)&J1);NB.SI(V1;GAUCHE(I1)&MOYENNE(Q1:S1)))); "yes";"no")

Cdlmnt
Via
0
gurumiam Messages postés 16 Date d'inscription lundi 6 avril 2020 Statut Membre Dernière intervention 18 août 2021
18 août 2021 à 14:36
Merci Via,

J'étais justement entrain de tester cette solution !
Et ça marche parfaitement :)

Merci à tous pour votre aide et vos précieux conseils :)
0
Raymond PENTIER Messages postés 58764 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 décembre 2024 17 255
18 août 2021 à 14:56
Bonjour gurumiam.

Tu trouveras la réponse complète et détaillée, pour les fonctions nouvelles, dans cet excellent lien
https://www.digicomp.ch/blognews/2017/05/05/la-nouvelle-fonction-si-conditions-quand-si-ne-suffit-plus
0