Excel : Comparaison avec plusieurs conditions
Résolu/Fermé
athizy
Messages postés
21
Date d'inscription
jeudi 4 mars 2010
Statut
Membre
Dernière intervention
19 mars 2010
-
4 mars 2010 à 13:56
athizy Messages postés 21 Date d'inscription jeudi 4 mars 2010 Statut Membre Dernière intervention 19 mars 2010 - 5 mars 2010 à 11:24
athizy Messages postés 21 Date d'inscription jeudi 4 mars 2010 Statut Membre Dernière intervention 19 mars 2010 - 5 mars 2010 à 11:24
A voir également:
- Excel : Comparaison avec plusieurs conditions
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
- Déplacer une colonne excel - Guide
12 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 713
4 mars 2010 à 23:25
4 mars 2010 à 23:25
bonjour
Il me semble que la mise en forme conditionnelle devrait fonctionner avec la formule :
Il faut sélectionner la plage à partir de A2 et la formule s'adapte jusqu'à la dernière cellule C sélectionnée.
Il me semble que la mise en forme conditionnelle devrait fonctionner avec la formule :
=ET(ESTNUM($C2);SOMMEPROD(($A$2:$A2=$A2)*((($B2>=$B$2:$B2)*($B2<=$C$2:$C2))+(($C2<=$C$2:$C2)*($C2>=$B$2:$B2))))>2)
Il faut sélectionner la plage à partir de A2 et la formule s'adapte jusqu'à la dernière cellule C sélectionnée.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 713
4 mars 2010 à 17:30
4 mars 2010 à 17:30
bonjour
Tu peux essayer cette formule dans une mise en forme conditionnelle et lorsque tu saisiras ta seconde date ta mise en forme s'appliquera si cet ensemble de 3 cellules est déjà saisi.
J'ai mis la plage A2:C22, à toi d'adapter à ton classeur.
Tu peux essayer cette formule dans une mise en forme conditionnelle et lorsque tu saisiras ta seconde date ta mise en forme s'appliquera si cet ensemble de 3 cellules est déjà saisi.
=ET(NON(ESTVIDE($C2));SOMMEPROD(($A$2:$A$22=$A2)*($B$2:$B$22=$B2)*($C$2:$C$22=$C2))>1)
J'ai mis la plage A2:C22, à toi d'adapter à ton classeur.
athizy
Messages postés
21
Date d'inscription
jeudi 4 mars 2010
Statut
Membre
Dernière intervention
19 mars 2010
4 mars 2010 à 17:43
4 mars 2010 à 17:43
Merci,
Je vais visualiser tout ça.
Cordialement
Je vais visualiser tout ça.
Cordialement
athizy
Messages postés
21
Date d'inscription
jeudi 4 mars 2010
Statut
Membre
Dernière intervention
19 mars 2010
4 mars 2010 à 17:52
4 mars 2010 à 17:52
J'ai utilisé ta formule, mais elle ne fonctionne que pour les dates identiques. J'aurais voulu que ça devienne rouge (mise en forme conditionnelle) quand les dates se chevauchent sans forcément être identiques.
As-tu une idée ?
Cordialement.
As-tu une idée ?
Cordialement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Raymond PENTIER
Messages postés
58802
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
10 janvier 2025
17 264
4 mars 2010 à 17:54
4 mars 2010 à 17:54
Bonjour athizy, et bienvenue dans ce forum.
On voit bien que tu as fait un effort d'explication, mais cela aurait été beaucoup plus facile pour nous de comprendre le problème, de contrôler ta formule et de t'en proposer une autre si tu nous avais envoyé ton fichier.
Pour ce faire, tu peux utiliser https://www.cjoint.com/ ou encore http://cijoint.fr/ sans oublier de revenir dans ton message pour faire "coller", afin que le lien que tu auras créé s'ajoute au corps de ton message.
Ta formule, permets-moi de te le dire brutalement, est hautement fantaisiste car tu ne respectes pas la syntaxe des fonctions ni la logique d'une formule.
Ainsi, ce n'est pas
(=SI(OU(ET(**a**;**b**);OU(ET(**c**;**d**));ET(**e**;**f**));"pris";"bon")
mais
=SI(OU(ET(**a**;**b**);ET(**c**;**d**));SI(ET(**e**;**f**);"pris";"bon"))
qui signifierait : si l'une des conditions a+b ou c+d est vérifiée, de 2 choses l'une, la condition e+f est vérifiée et j'affiche "pris", elle n'est pas vérifiée et j'affiche "bon". Mais alors on n'a rien prévu pour le cas ou aucune des conditions a+b ni c+d n'est vérifiée !
On voit bien que tu as fait un effort d'explication, mais cela aurait été beaucoup plus facile pour nous de comprendre le problème, de contrôler ta formule et de t'en proposer une autre si tu nous avais envoyé ton fichier.
Pour ce faire, tu peux utiliser https://www.cjoint.com/ ou encore http://cijoint.fr/ sans oublier de revenir dans ton message pour faire "coller", afin que le lien que tu auras créé s'ajoute au corps de ton message.
Ta formule, permets-moi de te le dire brutalement, est hautement fantaisiste car tu ne respectes pas la syntaxe des fonctions ni la logique d'une formule.
Ainsi, ce n'est pas
(=SI(OU(ET(**a**;**b**);OU(ET(**c**;**d**));ET(**e**;**f**));"pris";"bon")
mais
=SI(OU(ET(**a**;**b**);ET(**c**;**d**));SI(ET(**e**;**f**);"pris";"bon"))
qui signifierait : si l'une des conditions a+b ou c+d est vérifiée, de 2 choses l'une, la condition e+f est vérifiée et j'affiche "pris", elle n'est pas vérifiée et j'affiche "bon". Mais alors on n'a rien prévu pour le cas ou aucune des conditions a+b ni c+d n'est vérifiée !
athizy
Messages postés
21
Date d'inscription
jeudi 4 mars 2010
Statut
Membre
Dernière intervention
19 mars 2010
4 mars 2010 à 18:03
4 mars 2010 à 18:03
Voici le fichier.
Merci pour les conseils et vive les Antilles
https://www.cjoint.com/?desbOOMKib
Merci pour les conseils et vive les Antilles
https://www.cjoint.com/?desbOOMKib
Raymond PENTIER
Messages postés
58802
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
10 janvier 2025
17 264
4 mars 2010 à 18:19
4 mars 2010 à 18:19
Ah !
Tu avais oublié de placer les accolades de calcul matriciel aux extrémités de ta formule du post initial ...
On les obtient en appuyant simultanément sur les touches [alt gr] et [4] pour { ou sur les touches [alt gr] et [+] pour }
► Explique-moi pourquoi en D3 tu as saisi B$2:$E3 et pas simplement B$2:B2 comme dans ton post initial ? Même question évidemment pour C$2:F$2 au lieu de C$2:C2 ...
► Pourquoi ta formule ne fait jamais référence à la donnée essentielle, celle qui est en colonne A ? Telle qu'elle est rédigée, ta formule voudrait dire que dès qu'un matériel quelconque est dehors, tous les autres sont bloqués !
Tu avais oublié de placer les accolades de calcul matriciel aux extrémités de ta formule du post initial ...
On les obtient en appuyant simultanément sur les touches [alt gr] et [4] pour { ou sur les touches [alt gr] et [+] pour }
► Explique-moi pourquoi en D3 tu as saisi B$2:$E3 et pas simplement B$2:B2 comme dans ton post initial ? Même question évidemment pour C$2:F$2 au lieu de C$2:C2 ...
► Pourquoi ta formule ne fait jamais référence à la donnée essentielle, celle qui est en colonne A ? Telle qu'elle est rédigée, ta formule voudrait dire que dès qu'un matériel quelconque est dehors, tous les autres sont bloqués !
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
4 mars 2010 à 20:41
4 mars 2010 à 20:41
Bonsoir,
Je crains que ce ne soit un peu complexe par formule.
Une proposition en vba : athizy.xls
Le contrôle se fait à la saisie donc pour tester revalide tes dates.
Pour traiter un tableau déjà rempli tu peux remplace / par / dans la plage des dates pour forcer une validation de ces cellules.
Le message donnant la ligne peut être désactivé en mettant une ' devant msgbox(...)
eric
Je crains que ce ne soit un peu complexe par formule.
Une proposition en vba : athizy.xls
Le contrôle se fait à la saisie donc pour tester revalide tes dates.
Pour traiter un tableau déjà rempli tu peux remplace / par / dans la plage des dates pour forcer une validation de ces cellules.
Le message donnant la ligne peut être désactivé en mettant une ' devant msgbox(...)
eric
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 713
4 mars 2010 à 23:39
4 mars 2010 à 23:39
bonsoir,
Si l'on veux autoriser qu'une référence commence le même jour qu'une date fin on peut modifier ainsi :
bonsoir Éric et merci car il faut persévérer quand on est parti dans une direction sans avoir vu le problème de l'intervalle à gérer.
Si l'on veux autoriser qu'une référence commence le même jour qu'une date fin on peut modifier ainsi :
=ET(ESTNUM($C2);SOMMEPROD(($A$2:$A2=$A2)*((($B2>$B$2:$B2)*($B2<$C$2:$C2))+(($C2<$C$2:$C2)*($C2>$B$2:$B2))))>0)
bonsoir Éric et merci car il faut persévérer quand on est parti dans une direction sans avoir vu le problème de l'intervalle à gérer.
athizy
Messages postés
21
Date d'inscription
jeudi 4 mars 2010
Statut
Membre
Dernière intervention
19 mars 2010
5 mars 2010 à 09:22
5 mars 2010 à 09:22
Bonjour,
Un grand merci à tous car vos solutions fonctionnent.
Bonne continuation.
Cordialement.
Un grand merci à tous car vos solutions fonctionnent.
Bonne continuation.
Cordialement.
athizy
Messages postés
21
Date d'inscription
jeudi 4 mars 2010
Statut
Membre
Dernière intervention
19 mars 2010
5 mars 2010 à 11:24
5 mars 2010 à 11:24
Après comparaison avec le résultat que je voulais obtenir, voici la mise en forme conditionnelle qui fonctionne pour tous mes cas même les plus critiques.
=ET(ESTNUM($C4);SOMMEPROD(($A$2:$A4=$A4)*((($B4>$B$2:$B4)*($B4<$C$2:$C4))+(($C4<$C$2:$C4)*($C4>$B$2:$B4))+(($C4=$C$2:$C4))+($B4=$B$2:$B4))+(($C4>$C$2:$C4))*($B4<$B$2:$B4))>2)
Bonne journée a vous.
=ET(ESTNUM($C4);SOMMEPROD(($A$2:$A4=$A4)*((($B4>$B$2:$B4)*($B4<$C$2:$C4))+(($C4<$C$2:$C4)*($C4>$B$2:$B4))+(($C4=$C$2:$C4))+($B4=$B$2:$B4))+(($C4>$C$2:$C4))*($B4<$B$2:$B4))>2)
Bonne journée a vous.
4 mars 2010 à 23:29