Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pb de maj dans une MEFC

20 réponses
Avatar
el_bodeguero
Bonjour à tous,
je suis sous xcel 2007.

J'ai crée une MEFC dans une cellule. Quand j'ouvre le fichier la MEFC ne
donne rien. Je suis en calcul auto, je fais F9, ca ne marche pas.
Par contre, quand j'édite ma règle (click droit etc..) et que je la referme
elle se met a marcher.
Ma regle est la suivante:
=((SOMME((A9:A35<>0)*(E9:E35=0))))
qui doit me renvoyer police barré ou non

Merci à tous

10 réponses

1 2
Avatar
Daniel.C
> = vrai. =SI(0;"Vrai";"Faux") donne Faux
=SI(9;"Vrai";"Faux") donne Vrai



NON NON et NON !!!!!

C'est nier la réalité des faits
sachant que 0 = Faux (exact dans tout les cas de figures)
dire que 1 = vrai et que 9= vrai revient à affirmer que 1=9 !!!!
1 n'est pas égal à vrai, il équivaut à vrai. La preuve en est que ton test :
=(1=VRAI()) renvoie FAUX
1 est impair et 9 est impair ne revient pas à affirmer que 1=9

d'ailleurs le simple test ci-dessous devrait te faire réfléchir :

et les syntaxes correctes sont !
si (Condition ; si vrai ; si faux)
Condition etant un booleen résultat d'une comparaison logique !!

L'utilisation de 1 et de 0 daans les calculs booléens est de pure
convention.

Daniel


--
--
@+
;o)))
Avatar
Modeste
Bonsour® Daniel.C avec ferveur ;o))) vous nous disiez :

C'est nier la réalité des faits


../..
L'utilisation de 1 et de 0 dans les calculs booléens est de pure convention.



;o)))
je crains que trés peu d'utilisateurs soient au fait que Excel utilise dans ce contexte les "BitWise Operator"
http://fr.wikipedia.org/wiki/Op%C3%A9rations_sur_les_bits

tu fais comme tu veux !!!
mélanger les types , algébre de Boole et arithmétique, par expérience je sais à quoi m'en tenir...
;o)))

--
--
@+
;o)))
Avatar
Daniel.C
Je sais qu'on peut gloser sans fin, mais regarde ce site :
http://www.mcgimpsey.com/excel/bitwise.html
l'intérêt est dans le second paragraphe (excuse-moi de le citer en anglais)
:

XL's comparison operators use the values of their arguments as boolean
inputs. For instance =AND(A1, B1) will evaluate each argument for logical
TRUE(A1<>0) or FALSE (A1=0), then perform the AND, returning either TRUE
orFALSE. For instance, if A1 is 13 and B1 is 7, =AND(A1,B1) will evaluate
that as=AND(TRUE,TRUE) and return TRUE.
ou il est clairement indiué que :
VRAI (<>0) et FAUX (=0)
--
Cordialement.
Daniel
"Modeste" a écrit dans le message de news:

Bonsour® Daniel.C avec ferveur ;o))) vous nous disiez :

C'est nier la réalité des faits


../..
L'utilisation de 1 et de 0 dans les calculs booléens est de pure
convention.



;o)))
je crains que trés peu d'utilisateurs soient au fait que Excel utilise dans
ce contexte les "BitWise Operator"
http://fr.wikipedia.org/wiki/Op%C3%A9rations_sur_les_bits

tu fais comme tu veux !!!
mélanger les types , algébre de Boole et arithmétique, par expérience je
sais à quoi m'en tenir...
;o)))

--
--
@+
;o)))
Avatar
Modeste
Bonsour® Daniel.C avec ferveur ;o))) vous nous disiez :

Je sais qu'on peut gloser sans fin, mais regarde ce site :
http://www.mcgimpsey.com/excel/bitwise.html
l'intérêt est dans le second paragraphe (excuse-moi de le citer en
anglais)



;o)))
il s'agit bien de comparaisons : A1<>0 ou A1=0
en tant que personnes "expertes" dans l'utilisation d'excel nous somme donc d'accord....

maintenant quand à expliquer à l'utilisateur lambda (i.e el_bodeguero)
que la formule :
=((SOMME((A9:A35<>0)*(E9:E35=0))))
renvoie VRAI ou FAUX

je doute qu'a la vue des ces dernières explications celui-ci soit enclin à nous payer à boire....
;o)))



--
--
@+
;o)))
Avatar
Daniel.C
il s'agit bien de comparaisons : A1<>0 ou A1=0
en tant que personnes "expertes" dans l'utilisation d'excel nous somme donc
d'accord....

Alors, pas de problème, j'admets bien volontiers que poser ainsi un test
n'est pas des plus explicites.
Daniel
Avatar
el_bodeguero
"Modeste" wrote:

je doute qu'a la vue des ces dernières explications celui-ci soit enclin à nous payer à boire....



On sait jamais si je meurs dans un accident ce soir, j'aimerais ne pas
mourir idiot; donc explique moi. Vu la formule on comprends effectivement que
je suis autodidacte et que je ne passe pas 10 h/j sur xcel. Ma formule marche
toutefois.
Cependant même si ma formule fonctionne et que le but de ma question n'est
pas :
"Comment écrire proprement ce que je veux faire ?" mais "quel est ce
probleme de mise à jour ?" (qui n'est toujours pas trouvé); je lis vos
réponses avec attention.

Quand a payer à boire je suis toujours partant...
Avatar
Modeste
Bonsour® el_bodeguero avec ferveur ;o))) vous nous disiez :

j'aimerais ne pas mourir idiot; donc explique moi. Vu la formule on comprends
effectivement que je suis autodidacte et que je ne passe pas 10 h/j
sur xcel. Ma formule marche toutefois.
Cependant même si ma formule fonctionne et que le but de ma question
n'est pas :
"Comment écrire proprement ce que je veux faire ?" mais "quel est ce
probleme de mise à jour ?" (qui n'est toujours pas trouvé); je lis vos
réponses avec attention.



;o)))
Pardonnes nous ces tergiversations...
comme déja dit :
une condition MEFC attend comme formule une comparaison logique
donnant une résultat de type VRAI ou FAUX

utiliser cette formule :
=SOMME((A9:A35<>0)*(E9:E35=0))
est un raccourci rapide qui frise l'amalgame
et qui, tu l'auras constaté toi-même ne permet pas facilement d'expliciter l'erreur, si erreur il y a.

je pensais qu'une écriture rationnelle respectant la syntaxe conventionnelle avait permis de résoudre ton probleme...
Cf : ta réponse du 8/10 15:19

;o)))
peut-etre à bientot dans ta bodega ....
;o)))



--
--
@+
;o)))
Avatar
Daniel.C
Bonjour.
Il semble clair que la formule matricielle ne fonctionne pas correctement.
FdeCourt t'as donné la bonne formule; elle donne le même résultat que la
tienne sans être matricielle. Regarde le classeur exemple à l'adresse :
http://cjoint.com/?kjkgLYrgPQ
Ce que Modeste veut dire est que la formule doit renvoyer VRAI ou FAUX et
sur ce point, on comprend plus facilement :
=SOMMEPROD(N(A9:A35<>0);N(E9:E35=0))>0 (c'est vrai ou c'est faux)
que simplement =SOMMEPROD(N(A9:A35<>0);N(E9:E35=0))
--
Cordialement.
Daniel
"el_bodeguero" a écrit dans le
message de news:


"Modeste" wrote:

je doute qu'a la vue des ces dernières explications celui-ci soit enclin
à nous payer à boire....



On sait jamais si je meurs dans un accident ce soir, j'aimerais ne pas
mourir idiot; donc explique moi. Vu la formule on comprends effectivement
que
je suis autodidacte et que je ne passe pas 10 h/j sur xcel. Ma formule
marche
toutefois.
Cependant même si ma formule fonctionne et que le but de ma question n'est
pas :
"Comment écrire proprement ce que je veux faire ?" mais "quel est ce
probleme de mise à jour ?" (qui n'est toujours pas trouvé); je lis vos
réponses avec attention.

Quand a payer à boire je suis toujours partant...




Avatar
el_bodeguero
=SOMMEPROD(N(A9:A35<>0);N(E9:E35=0);N(E9:E35<>""))

A9<> "" ET E9 = 1 valeur
A9 <> "" ET E9 = 0
fonctionne

par contre
A9<> "" ET E9 = 1 valeur
A9 <> "" ET E9 = rien (non rempli)
ne fonctionne pas.

Par contre, quand je réouvre le fichier plus besoin d'aller dans la formule,
ca se met à jour automatiquement.


=SOMMEPROD(N(A9:A35<>0);N(E9:E35=0))
fonctionne !
Fdecourt j'ai lu votre formule sans trop y croire et je ne l'ai donc pas
essayée.
Erreur de ma part !
par contre je ne comprends pas la syntaxe et surtout la différence avec :
= SOMMEPROD( ()*() )

Allez je paye à boire !
Avatar
Modeste
Bonsour® el_bodeguero avec ferveur ;o))) vous nous disiez :

=SOMMEPROD(N(A9:A35<>0);N(E9:E35=0))
fonctionne !
par contre je ne comprends pas la syntaxe et surtout la différence
avec : = SOMMEPROD( ()*() )



la formulation généralisée SOMMEPROD( (m1 ) ; (m2 ) ; (mn) ) dans cet aspect accepte 31 matrices.
la fonction SOMMEPROD est une fonction matricielle faisant la somme de matrices via l'opérateur ";"
cette fonction contrairement aux autres fonctions matricielles n'a pas besoin d'etre validée par Ctrl+Maj+Entrée

la formulation SOMMEPROD( (Mx);(My ) )
la matrice (A9:A35<>0) soit Mx
ainsi que
la matrice (E9:E35=0) soit My
sont des matrices booleennes composées de VRAI et FAUX
l'utilisation de la fonction N( )
permet la conversion en numérique numériques composées de 1 et 0
SOMMEPROD( N(Mx);N(My ) )

la formulation SOMMEPROD( (Mx)*(My ) )
n'utilisant en fait ici qu'une seule matrice elle-meme etant le produit des matrice Mx et My
cette formulation ne vaut que si l'une des sous-matrices n'est pas booleenne (issue d'une comparaison)
(une matrice booleenne c'est : Uneplage Operateur_de_ comparaison 'Constante' )
si les 2 matrices (ou x matrices) sont Booléennes :
il convient d'utiliser la syntaxe : SOMMEPROD( 1*(Mx)*(My) )
1 * qui est ici un opérateur neutre permettant le passage en matrice numérique
on pourrait aussi bien utiliser les opérateurs :
diviser par /1
ajouter 0+
ou même 2 fois changement de signe : --

***********************
toutefois je REPETE !!!!! :
***********************
une condition MEFC attend comme formule une comparaison logique
donnant une résultat de type VRAI ou FAUX
alors la formulation correcte pourrait etre :
=SOMMEPROD( N(Mx);N(My ) )<>0
ou
=SOMMEPROD( --*(Mx)*(My ) )<>0

voir avec profit :
;o))) de notre contributrice favorite Misange :
http://xlwiki.free.fr/wiki/wakka.php?wiki=SommeProd
ou
de Bob Phillips qui fait parfois quelques passages sur ce forum MPFE
http://xldynamic.com/source/xld.SUMPRODUCT.html







--
--
@+
;o)))
1 2