Fonctions
Résolu
cindy001
Messages postés
102
Date d'inscription
Statut
Membre
Dernière intervention
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai besoin d'une formule qui me permettrait de faire la chose suivante:
(Pour le range BO1042:BU1042 que j'ai utilisé dans ma formule pour comprendre, c'est un exemple)
De AM48 à ET j'ai soit des 0 des +1 des -1 des 3
j'aimerai me focaliser sur le 3
1er cas si j'ai que des 0 Je veux que la formule me mette 0
2ème cas j'ai un 3 et pas de -1 ni de +1 Je veux que la formule me mette 1
3ème cas j'ai un 3 et un -1 mais pas de +1, si le -1 est avant le 3(c pour ca que j'ai utilisé EQUIV dans ma formule) je veux que la formule me mette 1, si le -1 est après le 3 je veux qu'elle me renvoie 0
4ème cas j'ai un 3 et un +1 mais pas de -1, si le +1 est avant le 3 je veux que cette formule me renvoie 1, sinon 0
et dernier cas j'ai un 3 un +1 et un -1 si le -1 ou le +1 est après le 3 je veux que la formule me renvoie 0 et 1 si le +1 et le -1 sont avant le 3
Voila la formule que j'ai utilisé mais pour certains cas elles marchent, mais pour les cas 1er cas et 2ème cas elles me renvoit #na:
=SI(OU(ET(NB.SI(BO42:BU42;-1)=0;NB.SI(BO42:BU42;1)=0;NB.SI(BO42:BU42;3)=1);ET(NB.SI(BO42:BU42;-1)>=1;NB.SI(BO42:BU42;1)>=1;EQUIV(-1;BO42:BU42;0)<EQUIV(3;BO42:BU42;0);EQUIV(1;BO42:BU42;0)<EQUIV(3;BO42:BU42;0));ET(NB.SI(BO42:BU42;-1)>=1;NB.SI(BO42:BU42;1)=0;NB.SI(BO42:BU42;3)=1;EQUIV(-1;BO42:BU42;0)<EQUIV(3;BO42:BU42;0));ET(NB.SI(B042:BU42;1)>=1;NB.SI(BO42:BU42;-1)=0;NB.SI(BO42:BU42;3)=1;EQUIV(1;BO42:BU42;0)<EQUIV(3;BO42:BU42;0)));1;0)
Merci
J'ai besoin d'une formule qui me permettrait de faire la chose suivante:
(Pour le range BO1042:BU1042 que j'ai utilisé dans ma formule pour comprendre, c'est un exemple)
De AM48 à ET j'ai soit des 0 des +1 des -1 des 3
j'aimerai me focaliser sur le 3
1er cas si j'ai que des 0 Je veux que la formule me mette 0
2ème cas j'ai un 3 et pas de -1 ni de +1 Je veux que la formule me mette 1
3ème cas j'ai un 3 et un -1 mais pas de +1, si le -1 est avant le 3(c pour ca que j'ai utilisé EQUIV dans ma formule) je veux que la formule me mette 1, si le -1 est après le 3 je veux qu'elle me renvoie 0
4ème cas j'ai un 3 et un +1 mais pas de -1, si le +1 est avant le 3 je veux que cette formule me renvoie 1, sinon 0
et dernier cas j'ai un 3 un +1 et un -1 si le -1 ou le +1 est après le 3 je veux que la formule me renvoie 0 et 1 si le +1 et le -1 sont avant le 3
Voila la formule que j'ai utilisé mais pour certains cas elles marchent, mais pour les cas 1er cas et 2ème cas elles me renvoit #na:
=SI(OU(ET(NB.SI(BO42:BU42;-1)=0;NB.SI(BO42:BU42;1)=0;NB.SI(BO42:BU42;3)=1);ET(NB.SI(BO42:BU42;-1)>=1;NB.SI(BO42:BU42;1)>=1;EQUIV(-1;BO42:BU42;0)<EQUIV(3;BO42:BU42;0);EQUIV(1;BO42:BU42;0)<EQUIV(3;BO42:BU42;0));ET(NB.SI(BO42:BU42;-1)>=1;NB.SI(BO42:BU42;1)=0;NB.SI(BO42:BU42;3)=1;EQUIV(-1;BO42:BU42;0)<EQUIV(3;BO42:BU42;0));ET(NB.SI(B042:BU42;1)>=1;NB.SI(BO42:BU42;-1)=0;NB.SI(BO42:BU42;3)=1;EQUIV(1;BO42:BU42;0)<EQUIV(3;BO42:BU42;0)));1;0)
Merci
19 réponses
Alors voila avec le fichier ca serait ptetre plus facile:
http://www.cijoint.fr/cjlink.php?file=cj201104/cijPKQ0ouf.xls
Pb en BS7 j'ai #na alors que sur le range BO42 /bu42 j'ai un 3 et pas de -1 ni de +1 donc on est dans le cas 2, je voulais donc que la formule me renvoie 1
Merci
http://www.cijoint.fr/cjlink.php?file=cj201104/cijPKQ0ouf.xls
Pb en BS7 j'ai #na alors que sur le range BO42 /bu42 j'ai un 3 et pas de -1 ni de +1 donc on est dans le cas 2, je voulais donc que la formule me renvoie 1
Merci
Bonjour
sans trop se casser la tête avec votre solution
il semble normal que les 1° et le 2° ne fonctionnent pas, puisque qu'un, des EQUIV ne trouve pas de 3 ou de 1 ou de -1 ce qui entraîne je pense le #N/A
Commencez votre formule avec:
=SI(SOMME(BO42:BU42)=0;0;SI(SOMME(BO42:BU42)=3;1;...suite....))
crdlmnt
sans trop se casser la tête avec votre solution
il semble normal que les 1° et le 2° ne fonctionnent pas, puisque qu'un, des EQUIV ne trouve pas de 3 ou de 1 ou de -1 ce qui entraîne je pense le #N/A
Commencez votre formule avec:
=SI(SOMME(BO42:BU42)=0;0;SI(SOMME(BO42:BU42)=3;1;...suite....))
crdlmnt
Merci de m'avoir lu
SOMME(BO42:BU42)=0, ca c trompeur puisque je peux avoir un +1 et -1
et en somme ca ferait 0 et ca veut pas dire que ya que des 0, etc des cas comme cas il peut y en avoir d'autres
SOMME(BO42:BU42)=0, ca c trompeur puisque je peux avoir un +1 et -1
et en somme ca ferait 0 et ca veut pas dire que ya que des 0, etc des cas comme cas il peut y en avoir d'autres
Alors Cette formule est sur le range BO42:DU42 mais ca c un exemple
NB.SI(BO42:BU42;0)=7 pour ca effectivement on sait que ya 7 zéros
mais Cette formule j'aimerais la réutiliser sur une macro VBA dans une boucle donc
le range ne sera pas fixe mais variable et les EQUIV je ne veux justement pas les utiliser pour les cas 1er cas et 2ème cas puisque s'il n'y a pas de +1 ni de -1 il n'y a pas lieu de chercher leurs positions relatives par rapport à 3, ce que je pense avoir fait fait avec ma formule, à moins que je n'y parvienes pas correctement
Merci encore pour tes réponses
NB.SI(BO42:BU42;0)=7 pour ca effectivement on sait que ya 7 zéros
mais Cette formule j'aimerais la réutiliser sur une macro VBA dans une boucle donc
le range ne sera pas fixe mais variable et les EQUIV je ne veux justement pas les utiliser pour les cas 1er cas et 2ème cas puisque s'il n'y a pas de +1 ni de -1 il n'y a pas lieu de chercher leurs positions relatives par rapport à 3, ce que je pense avoir fait fait avec ma formule, à moins que je n'y parvienes pas correctement
Merci encore pour tes réponses
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Pour répondre à ta première question :
=SI(NBVAL(BO1042:BU1042)=NB.SI(BO1042:BU1042;0);0;SI(ET(NB.SI(BO1042:BU1042;3)=1;NB.SI(BO1042:BU1042;-1)=0;NB.SI(BO1042:BU1042;1)=0);1;SI(ET(NB.SI(BO1042:BU1042;3)=1;NB.SI(BO1042:BU1042;-1)=1;NB.SI(BO1042:BU1042;1)=0);SI(EQUIV(-1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0);1;0);SI(ET(NB.SI(BO1042:BU1042;3)=1;NB.SI(BO1042:BU1042;-1)=0;NB.SI(BO1042:BU1042;1)=1);SI(EQUIV(1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0);1;0);SI(ET(NB.SI(BO1042:BU1042;3)=1;NB.SI(BO1042:BU1042;-1)=1;NB.SI(BO1042:BU1042;1)=1);SI(ET(EQUIV(1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0);EQUIV(-1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0));1;SI(ET(NON(EQUIV(1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0));NON(EQUIV(-1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0)));"???";0));"???")))))
A partir de Excel 2007
Cordialement
Patrice
Pour répondre à ta première question :
=SI(NBVAL(BO1042:BU1042)=NB.SI(BO1042:BU1042;0);0;SI(ET(NB.SI(BO1042:BU1042;3)=1;NB.SI(BO1042:BU1042;-1)=0;NB.SI(BO1042:BU1042;1)=0);1;SI(ET(NB.SI(BO1042:BU1042;3)=1;NB.SI(BO1042:BU1042;-1)=1;NB.SI(BO1042:BU1042;1)=0);SI(EQUIV(-1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0);1;0);SI(ET(NB.SI(BO1042:BU1042;3)=1;NB.SI(BO1042:BU1042;-1)=0;NB.SI(BO1042:BU1042;1)=1);SI(EQUIV(1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0);1;0);SI(ET(NB.SI(BO1042:BU1042;3)=1;NB.SI(BO1042:BU1042;-1)=1;NB.SI(BO1042:BU1042;1)=1);SI(ET(EQUIV(1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0);EQUIV(-1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0));1;SI(ET(NON(EQUIV(1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0));NON(EQUIV(-1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0)));"???";0));"???")))))
A partir de Excel 2007
Cordialement
Patrice
Merci pour ta réponse sinon je ne comprends pas les ??? et j'ai un message d'erreur sur le NON()?
Merci encore
Merci encore
Les ??? c'est pour les cas que tu n'as pas précisé c'est a dire que je ne sais pas si le résultat doit être 0 ou 1 ou autre chose :
- quand il y a autre chose que 0,-1, 1 et 3 (par exemple des cases vides)
- quand il y a -1 et/ou 1 et pas 3.
- quand le -1 et le 1 sont après le 3
- quand il y a plusieurs 3 ou 1 ou -1
Si tu précises quel doit être le résultat dans ces cas, ou si tu veux 1 pour les cas définis à 1 et 0 dans tous les autres cas, la formule sera bien plus simple !
- quand il y a autre chose que 0,-1, 1 et 3 (par exemple des cases vides)
- quand il y a -1 et/ou 1 et pas 3.
- quand le -1 et le 1 sont après le 3
- quand il y a plusieurs 3 ou 1 ou -1
Si tu précises quel doit être le résultat dans ces cas, ou si tu veux 1 pour les cas définis à 1 et 0 dans tous les autres cas, la formule sera bien plus simple !
tu as raison je n'ai pas précisé ces cas:
-quand il y a autre chose que 0,-1, 1 et 3 (par exemple des cases vides si il y en a ne serait ce qu'une seule dans le range)
dans ce cas là je veux rien:donc ""
- quand il y a -1 et/ou 1 et pas 3:
là je veux 0
- quand le -1 et le 1 sont après le 3: là je veux 0
Et
- quand il y a plusieurs 3(LA je veux 0) ou 1(Là je veux 1 si le dernier +1 est avant le 3 c'est à dire si y'a pas de +1 après le 3 faut jouer le EQUIV la dessus) ou -1
(Là je veux 1 si le dernier -1 est avant le 3 c'est à dire si y'a pas de -1 après le 3 faut jouer le EQUIV la dessus donc je veux que la formule me renvoie 0 si le dernier -1 est après le 3)
Merci
-quand il y a autre chose que 0,-1, 1 et 3 (par exemple des cases vides si il y en a ne serait ce qu'une seule dans le range)
dans ce cas là je veux rien:donc ""
- quand il y a -1 et/ou 1 et pas 3:
là je veux 0
- quand le -1 et le 1 sont après le 3: là je veux 0
Et
- quand il y a plusieurs 3(LA je veux 0) ou 1(Là je veux 1 si le dernier +1 est avant le 3 c'est à dire si y'a pas de +1 après le 3 faut jouer le EQUIV la dessus) ou -1
(Là je veux 1 si le dernier -1 est avant le 3 c'est à dire si y'a pas de -1 après le 3 faut jouer le EQUIV la dessus donc je veux que la formule me renvoie 0 si le dernier -1 est après le 3)
Merci
Bonjour,
mais Cette formule j'aimerais la réutiliser sur une macro VBA
Si tu es destinée à faire du vba pourquoi ne fais-tu pas une fonction personnalisée ? ça sera beaucoup plus simple.
eric
mais Cette formule j'aimerais la réutiliser sur une macro VBA
Si tu es destinée à faire du vba pourquoi ne fais-tu pas une fonction personnalisée ? ça sera beaucoup plus simple.
eric
Re,
Finalement on peut vraiment simplifier le problème :
- le résultat est vide chaque fois qu'il y a autre chose que 0, -1, 1 ou 3
- le résultat est 1 quand il n'y a qu'un seul 3 (avec ou sans -1 et/ou 1 avant) et qu'il n'y a ni -1 ni 1 après
- le résultat est 0 dans tous les autres cas.
Voici une formule plus simple (qui fonctionne aussi avec 2003) :
=SI(NB.SI(BO1042:BU1042;0)+NB.SI(BO1042:BU1042;-1)+NB.SI(BO1042:BU1042;1)+NB.SI(BO1042:BU1042;3)<>NBVAL(BO1042:BU1042);"";SI(NB.SI(BO1042:BU1042;3)=1;SI(ET(SOMMEPROD((DECALER(BO1042:BU1042;;EQUIV(3;BO1042:BU1042;0);;NBVAL(BO1042:BU1042)-EQUIV(3;BO1042:BU1042;0))=-1)*1)=0;SOMMEPROD((DECALER(BO1042:BU1042;;EQUIV(3;BO1042:BU1042;0);;NBVAL(BO1042:BU1042)-EQUIV(3;BO1042:BU1042;0))=1)*1)=0);1;0);0))
Finalement on peut vraiment simplifier le problème :
- le résultat est vide chaque fois qu'il y a autre chose que 0, -1, 1 ou 3
- le résultat est 1 quand il n'y a qu'un seul 3 (avec ou sans -1 et/ou 1 avant) et qu'il n'y a ni -1 ni 1 après
- le résultat est 0 dans tous les autres cas.
Voici une formule plus simple (qui fonctionne aussi avec 2003) :
=SI(NB.SI(BO1042:BU1042;0)+NB.SI(BO1042:BU1042;-1)+NB.SI(BO1042:BU1042;1)+NB.SI(BO1042:BU1042;3)<>NBVAL(BO1042:BU1042);"";SI(NB.SI(BO1042:BU1042;3)=1;SI(ET(SOMMEPROD((DECALER(BO1042:BU1042;;EQUIV(3;BO1042:BU1042;0);;NBVAL(BO1042:BU1042)-EQUIV(3;BO1042:BU1042;0))=-1)*1)=0;SOMMEPROD((DECALER(BO1042:BU1042;;EQUIV(3;BO1042:BU1042;0);;NBVAL(BO1042:BU1042)-EQUIV(3;BO1042:BU1042;0))=1)*1)=0);1;0);0))
Je t'avoues que depuis hier j'essaie de comprendre mais je ne comprends toujours rien après le "", serait possible d'avoir une explication après ce ""
Merci
Merci
J'avais oublié de te remercié de m'avoir répondu
Merci
Mais après avoir regarder rapidement il manque effectivement des cas et je n'ai pas trop le temps de tout regarder maintenant dès que j'aurais bouclé mon histoire de formule ca me serait aussi très utile effectivement d'avoir ca en fonction vba, et alors je pourrais te répondre, mais encore Merci eriic
Merci
Mais après avoir regarder rapidement il manque effectivement des cas et je n'ai pas trop le temps de tout regarder maintenant dès que j'aurais bouclé mon histoire de formule ca me serait aussi très utile effectivement d'avoir ca en fonction vba, et alors je pourrais te répondre, mais encore Merci eriic
=SI(ET(SOMMEPROD((DECALER(CC1139:CQ1139;;EQUIV(3;CC1139:CQ1139;0);;NBVAL(CC1139:CQ1139)-EQUIV(3;CC1139:CQ1139;0))=-1)*1)=0;SOMMEPROD((DECALER(CC1139:CQ1139;;EQUIV(3;CC1139:CQ1139;0);;NBVAL(CC1139:CQ1139)-EQUIV(3;CC1139:CQ1139;0))=1)*1)=0);1;0)
C surtout ca en fait que je ne comprends pas
Merci encore
C surtout ca en fait que je ne comprends pas
Merci encore
Par exemple quand j'essaye ca:
=DECALER(CC1139:CQ1139;;EQUIV(3;CC1139:CQ1139;0);;NBVAL(CC1139:CQ1139)-EQUIV(3;CC1139:CQ1139;0))
Ca me met #valeur??
Merci
=DECALER(CC1139:CQ1139;;EQUIV(3;CC1139:CQ1139;0);;NBVAL(CC1139:CQ1139)-EQUIV(3;CC1139:CQ1139;0))
Ca me met #valeur??
Merci
Bonjour,
Le principe de la formule en #12 :
- d'abord identifier tous les cas ou le résultat doit être rien, dans ce cas, à ta demande, je mets chaine vide (""), avant j'avais mis "???" ;
- ensuite identifier tous les cas où le résultat est 1 ;
- finalement, pour tous les autres cas le résultat est 0.
Explications pour #16 :
DECALER sert à adresser uniquement la partie de la plage située après le 3 :
- ça décale la plage après la position du 3 obtenu par EQUIV,
- et ça redimensionne la plage. Sa la taille est mesurée par NBVAL. Elle est réduite en fonction de la position du 3 obtenue par le second EQUIV de façon à conserver la même cellule de fin.
Le 1° SOMMEPROD compte les -1 dans cette plage
Le 2° SOMMEPROD compte les 1 dans cette même plage.
Quand il y a un seul 3 et qu'il n'y a ni -1 ni 1 après le 3, le résultat est 1
dans tous le autres cas c'est 0.
Explications pour #17 :
C'est normal, le résultat est une plage de cellules.
Cordialement
Patrice
Le principe de la formule en #12 :
- d'abord identifier tous les cas ou le résultat doit être rien, dans ce cas, à ta demande, je mets chaine vide (""), avant j'avais mis "???" ;
- ensuite identifier tous les cas où le résultat est 1 ;
- finalement, pour tous les autres cas le résultat est 0.
Explications pour #16 :
DECALER sert à adresser uniquement la partie de la plage située après le 3 :
- ça décale la plage après la position du 3 obtenu par EQUIV,
- et ça redimensionne la plage. Sa la taille est mesurée par NBVAL. Elle est réduite en fonction de la position du 3 obtenue par le second EQUIV de façon à conserver la même cellule de fin.
Le 1° SOMMEPROD compte les -1 dans cette plage
Le 2° SOMMEPROD compte les 1 dans cette même plage.
Quand il y a un seul 3 et qu'il n'y a ni -1 ni 1 après le 3, le résultat est 1
dans tous le autres cas c'est 0.
Explications pour #17 :
C'est normal, le résultat est une plage de cellules.
Cordialement
Patrice
Merci encore et dsl j'avais pas vu que tu m'avais répondu ven,dredi soir
Et si je veux faire exactement la meme chose en mettant "" non pas si j'ai une seule cellule vide mais si la dernière cellule de la plage est "":
=SI(ESTVIDE(BU1042);"";SI(NB.SI(BO1042:BU1042;3)=1;SI(ET(SOMMEPROD((DECALER(BO1042:BU1042;;EQUIV(3;BO1042:BU1042;0);;NBVAL(BO1042:BU1042)-EQUIV(3;BO1042:BU1042;0))=-1)*1)=0;SOMMEPROD((DECALER(BO1042:BU1042;;EQUIV(3;BO1042:BU1042;0);;NBVAL(BO1042:BU1042)-EQUIV(3;BO1042:BU1042;0))=1)*1)=0);1;0);0))
les NBVAL que tu as utilisé ne genent-ils pas??
j'ai l'impression que non en ayant fait quelques tests mais je n'en suis pas sur
Merci encore
Et si je veux faire exactement la meme chose en mettant "" non pas si j'ai une seule cellule vide mais si la dernière cellule de la plage est "":
=SI(ESTVIDE(BU1042);"";SI(NB.SI(BO1042:BU1042;3)=1;SI(ET(SOMMEPROD((DECALER(BO1042:BU1042;;EQUIV(3;BO1042:BU1042;0);;NBVAL(BO1042:BU1042)-EQUIV(3;BO1042:BU1042;0))=-1)*1)=0;SOMMEPROD((DECALER(BO1042:BU1042;;EQUIV(3;BO1042:BU1042;0);;NBVAL(BO1042:BU1042)-EQUIV(3;BO1042:BU1042;0))=1)*1)=0);1;0);0))
les NBVAL que tu as utilisé ne genent-ils pas??
j'ai l'impression que non en ayant fait quelques tests mais je n'en suis pas sur
Merci encore
Bonjour,
Attention, une cellule vide ne contient rien, une cellule qui contient "" (chaine vide) n'est pas une cellule vide, elle contient un texte qui lui ne contient pas de caractère.
Une cellule vide n'est pas comptée par NbVal alors qu'une cellule qui contient "" est comptée.
Pour mettre "" dans une cellule, taper la formule ="" puis faire copier / collage spécial / valeurs.
Attention, une cellule vide ne contient rien, une cellule qui contient "" (chaine vide) n'est pas une cellule vide, elle contient un texte qui lui ne contient pas de caractère.
Une cellule vide n'est pas comptée par NbVal alors qu'une cellule qui contient "" est comptée.
Pour mettre "" dans une cellule, taper la formule ="" puis faire copier / collage spécial / valeurs.
Dernière chose Pour moi cette formule est plus facile à manipuler j'aimerais donc utiliser celle là mais j'ai un message d'erreur d'Excel:
La formule que vous avez tapé contient une erreur et ca m'affiche en noir le NON du NON(EQUIV(1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0));NON(EQUIV(-1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0)));"???";0));"???")))))
T'aurais une idée j'arrive pas à trouvé??
=SI(NBVAL(BO1042:BU1042)=NB.SI(BO1042:BU1042;0);0;SI(ET(NB.SI(BO1042:BU1042;3)=1;NB.SI(BO1042:BU1042;-1)=0;NB.SI(BO1042:BU1042;1)=0);1;SI(ET(NB.SI(BO1042:BU1042;3)=1;NB.SI(BO1042:BU1042;-1)=1;NB.SI(BO1042:BU1042;1)=0);SI(EQUIV(-1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0);1;0);SI(ET(NB.SI(BO1042:BU1042;3)=1;NB.SI(BO1042:BU1042;-1)=0;NB.SI(BO1042:BU1042;1)=1);SI(EQUIV(1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0);1;0);SI(ET(NB.SI(BO1042:BU1042;3)=1;NB.SI(BO1042:BU1042;-1)=1;NB.SI(BO1042:BU1042;1)=1);SI(ET(EQUIV(1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0);EQUIV(-1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0));1;SI(ET(NON(EQUIV(1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0));NON(EQUIV(-1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0)));"";0));"")))))
Merci encore
La formule que vous avez tapé contient une erreur et ca m'affiche en noir le NON du NON(EQUIV(1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0));NON(EQUIV(-1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0)));"???";0));"???")))))
T'aurais une idée j'arrive pas à trouvé??
=SI(NBVAL(BO1042:BU1042)=NB.SI(BO1042:BU1042;0);0;SI(ET(NB.SI(BO1042:BU1042;3)=1;NB.SI(BO1042:BU1042;-1)=0;NB.SI(BO1042:BU1042;1)=0);1;SI(ET(NB.SI(BO1042:BU1042;3)=1;NB.SI(BO1042:BU1042;-1)=1;NB.SI(BO1042:BU1042;1)=0);SI(EQUIV(-1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0);1;0);SI(ET(NB.SI(BO1042:BU1042;3)=1;NB.SI(BO1042:BU1042;-1)=0;NB.SI(BO1042:BU1042;1)=1);SI(EQUIV(1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0);1;0);SI(ET(NB.SI(BO1042:BU1042;3)=1;NB.SI(BO1042:BU1042;-1)=1;NB.SI(BO1042:BU1042;1)=1);SI(ET(EQUIV(1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0);EQUIV(-1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0));1;SI(ET(NON(EQUIV(1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0));NON(EQUIV(-1;BO1042:BU1042;0)<EQUIV(3;BO1042:BU1042;0)));"";0));"")))))
Merci encore
Bonjour,
Il n'y a pas d'erreur dans la formule mais comme je l'avais précisé dans le post #6, cette formule ne fonctionne qu'a partir de Excel 2007. Avec Excel 2003, le nombre de parenthèses ouvrantes autorisées est trop important, c'est pourquoi il bloque sur le (NON...
La formule simplifiée proposée au post #12 réalise exactement la même fonction et présente l'avantage de fonctionner aussi avec les versions d'Excel plus anciennes
Patrice
Il n'y a pas d'erreur dans la formule mais comme je l'avais précisé dans le post #6, cette formule ne fonctionne qu'a partir de Excel 2007. Avec Excel 2003, le nombre de parenthèses ouvrantes autorisées est trop important, c'est pourquoi il bloque sur le (NON...
La formule simplifiée proposée au post #12 réalise exactement la même fonction et présente l'avantage de fonctionner aussi avec les versions d'Excel plus anciennes
Patrice