OVH Cloud OVH Cloud

Pourquoi 3 + VRAI = 2 ?

62 réponses
Avatar
Gouap
Bonsoir,

je ne comprends pas pourquoi quand j'additionne le résultat d'une macro qui
retoure la valeur "Vrai" à une autre valeur positive, je me retrouve avec ma
veleur positive - 1 au lieu de +1.

A = 3 + "Vrai" = 2
A = -3 + "Vrai" = -4

Avez vous une explication à ce phénomène ?

10 réponses

1 2 3 4 5
Avatar
Daniel.C
Bien sûr, à condition d'utiliser XL2007. De plus, j'ai expliqué une
formule simple, pour l'explemple.
Un aute exemple :
Faire la somme A1:A10 en ignorant les valeurs d'erreur :
=SOMME(SI(ESTERREUR(A1:A10);"";A1:A10))
Daniel

Pour cette fonction, je propose
=NB.SI.ENS(A1:A5;1;B1:B5;2)
qui fait exactement la même chose (en plus même pas besoin d'indiquer que
c'est un calcul matriciel).

Pour l'instant, le calcul matriciel avec des conditions, je vois que je peux
le faire avec les fonctions que me fournis Excel. Si ce n'était pas le cas,
on pourrait en discuter, mais là pour l'instant je trouve qu'on peut écrire
des formules qui ont du sens au lieu de formules qu'il faut s'amuser à
interprêter, et en plus qui risquent d'être fausses lorsqu'on passe du côté
VBA comme l'a fait Gouap.

--


Jérôme

"Daniel.C" a écrit dans le message de news:

La formule matricielle suivante permet de compter les valeurs de la plage
A1:A5 qui sont égales à 1 et dont les valeurs correspondantes de la plage
B1:B5 sont égales à 2 :
=SOMME((A1:A5=1)*(B1:B5=2))
(valider avec Ctrl+Maj+Entrée)
J'ai mis le classeur exemple ici :
http://www.cijoint.fr/cjlink.php?file=cj200909/cijlFU62mr.xls
Quant à VBA, je ne pense pas avoir écrit que j'avais des exemples utiles en
mémoire.
Daniel

nombre de formules matricielles basées sur ce qui précède.



Est-ce que tu aurais des exemples, je ne connais pas ce genre de formules.
Dans Excel, les formules matricielles m'ont surtout servi à faire de la
compensation par moindres carrés.

Illicite n'est pas le mot, puisque VBA sait l'interprêter. Je dis juste
que c'est aussi lisible que de faire "ln (42) + 'C'". L'interpréteur sait
faire, mais ce n'est pas lisible. Tu dis avoir des exemples où c'est
vraiment utile, et donc que ça doit surement être bien plus lisible que
dans l'exemple type "-3 + VRAI = -4". C'est pourquoi je suis intéressé.

--

Jérôme

"Daniel.C" a écrit dans le message de news:

Bonjour.
Il n'est ici pas question d'ajouter du numérique et du booléen mais
d'ajouter du numérique à la correspondance numérique de la valeur
booléenne. Si c'est illicite, il est impossible d'écrire un grand nombre
de formules matricielles basées sur ce qui précède.
Cordialement.
Daniel

D'une manière générale, VRAI, c'est juste pas FAUX, et FAUX est 0.

Que VRAI soit représenté par un nombre égal à 1 ou -1, c'est un
processus interne. On n'additionne pas les carottes et les poireaux,
pareil ici : Additionner un booléen et un nombre n'a pas de sens. Certes
cela te donne un résultat, mais parce que tant que ce n'est pas fatal,
un programme informatique peut faire n'importe quoi.

Un code doit être lisible, ça se lit comme n'importe quel texte. Faire
ce genre de chose, c'est prendre le risque de ne pas avoir un code
maintenable, un code incompréhensible dans quelques temps.

++

--


Jérôme Cuinet

"Gouap" a écrit dans le message de news:

Merci pour cette info, je vais maintenant retoucher mes macros en
tenant compte de cette propriété au lieu de perdre mon temps à chercher
une érreur dans le code.


"Daniel.C" a écrit dans le message de news:

Bonsoir.
VBA, au contraire d'Excel attribue la valeur "-1" à VRAI :
var = True * 1
donne -1 pour var.
Cordialement.
Daniel

Bonsoir,

je ne comprends pas pourquoi quand j'additionne le résultat d'une
macro qui retoure la valeur "Vrai" à une autre valeur positive, je me
retrouve avec ma veleur positive - 1 au lieu de +1.

A = 3 + "Vrai" = 2
A = -3 + "Vrai" = -4

Avez vous une explication à ce phénomène ?
























Avatar
LSteph
Non,
Somme.si est une fonction qui plante lorsqu'il y a des liaisons dans
la plupart des versions.
Sommeprod n'a pas ce défaut et est directement matricielle.
Somme.si.ens n'est pas disponible en standard dans les versions <=
2003

Tu appeles cela un bricolage , je préfère dire une brillante astuce!

;o)

AmiCordialement (quoiqu'il en soit de nos débats)

--
lSteph

On 15 sep, 12:09, "JérômeC" wrote:
Donc un oignon n'est pas un légume...

=SOMME.SI.ENS(B2:B10;A2:A10;"toto";B2:B10;">1000")
me semble exactement équivalent à la formule proposée
=SOMMEPRO((A2:A10="toto")*(B2:B10>1000)*(B2:B10))

C'est ausi long l'un que l'autre, et le respect de la syntaxe de la fonct ion
a un sens. Alors que la fonction en utilisaant VRAI = -1 est du bricola ge en
connaissant la valeur associée à ce booléen.

--

Jérôme Cuinet

"LSteph" a écrit dans le message de news:

Bonjour JeromeC,

;o) Si, si on peut ...
3carottes + 2 poireaux+1pomme de terre+1 Oignon cela fait 6 légumes
(ajouter cela dans une bonne casserole d'eau salée pouivrée, porter à
ébulition, passer
cela vous fera une bonne soupe).

Plaisanterie à part
Excel se moque de savoir si ce sont des carottes ou des poireaux,et ce
sera pareil pour vba même s'il faudra parfois adapter le type d'entré e
on peut très bien ajouter soustraire ou multilier par vrai, une date
ou un nombre.
Le tout est d'arriver au résultat voulu.
Pour exemple,

c'est ce que fait Sommeprod il multiplie par Vrai ou Faux

=sommeprod((A2:A10="toto")*(B2:B10>1000)*(B2:B10))

si le premier item et le second renvoient vrai on fera la somme de ce
qui est en B

on peut faire pareil avec VBA , en se méfiant le cas échéant du sig ne.

On peut aussi utiliser abs

Cordialement;

--
lSteph

On 15 sep, 09:52, "JérômeC" wrote:



> D'une manière générale, VRAI, c'est juste pas FAUX, et FAUX est 0 .

> Que VRAI soit représenté par un nombre égal à 1 ou -1, c'est un processus
> interne. On n'additionne pas les carottes et les poireaux, pareil ici :
> Additionner un booléen et un nombre n'a pas de sens. Certes cela te d onne
> un
> résultat, mais parce que tant que ce n'est pas fatal, un programme
> informatique peut faire n'importe quoi.

> Un code doit être lisible, ça se lit comme n'importe quel texte. Fa ire ce
> genre de chose, c'est prendre le risque de ne pas avoir un code
> maintenable,
> un code incompréhensible dans quelques temps.

> ++

> --

> Jérôme Cuinet

> "Gouap" a écrit dans le message de news:
>

> > Merci pour cette info, je vais maintenant retoucher mes macros en ten ant
> > compte de cette propriété au lieu de perdre mon temps à cherche r une
> > érreur dans le code.

> > "Daniel.C" a écrit dans le message de ne ws:
> >
> >> Bonsoir.
> >> VBA, au contraire d'Excel attribue la valeur "-1" à VRAI :
> >> var = True * 1
> >> donne -1 pour var.
> >> Cordialement.
> >> Daniel

> >>> Bonsoir,

> >>> je ne comprends pas pourquoi quand j'additionne le résultat d'une
> >>> macro
> >>> qui retoure la valeur "Vrai" à une autre valeur positive, je me
> >>> retrouve
> >>> avec ma veleur positive - 1 au lieu de +1.

> >>> A = 3 + "Vrai" = 2
> >>> A = -3 + "Vrai" = -4

> >>> Avez vous une explication à ce phénomène ?- Masquer le texte des
> >>> messages précédents -

> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
Daniel.C
Oups, il y a aussi SIERREUR dans Excel 2007
Daniel

Bien sûr, à condition d'utiliser XL2007. De plus, j'ai expliqué une formule
simple, pour l'explemple.
Un aute exemple :
Faire la somme A1:A10 en ignorant les valeurs d'erreur :
=SOMME(SI(ESTERREUR(A1:A10);"";A1:A10))
Daniel

Pour cette fonction, je propose
=NB.SI.ENS(A1:A5;1;B1:B5;2)
qui fait exactement la même chose (en plus même pas besoin d'indiquer que
c'est un calcul matriciel).

Pour l'instant, le calcul matriciel avec des conditions, je vois que je
peux le faire avec les fonctions que me fournis Excel. Si ce n'était pas le
cas, on pourrait en discuter, mais là pour l'instant je trouve qu'on peut
écrire des formules qui ont du sens au lieu de formules qu'il faut s'amuser
à interprêter, et en plus qui risquent d'être fausses lorsqu'on passe du
côté VBA comme l'a fait Gouap.

--


Jérôme

"Daniel.C" a écrit dans le message de news:

La formule matricielle suivante permet de compter les valeurs de la plage
A1:A5 qui sont égales à 1 et dont les valeurs correspondantes de la plage
B1:B5 sont égales à 2 :
=SOMME((A1:A5=1)*(B1:B5=2))
(valider avec Ctrl+Maj+Entrée)
J'ai mis le classeur exemple ici :
http://www.cijoint.fr/cjlink.php?file=cj200909/cijlFU62mr.xls
Quant à VBA, je ne pense pas avoir écrit que j'avais des exemples utiles
en mémoire.
Daniel

nombre de formules matricielles basées sur ce qui précède.



Est-ce que tu aurais des exemples, je ne connais pas ce genre de
formules. Dans Excel, les formules matricielles m'ont surtout servi à
faire de la compensation par moindres carrés.

Illicite n'est pas le mot, puisque VBA sait l'interprêter. Je dis juste
que c'est aussi lisible que de faire "ln (42) + 'C'". L'interpréteur sait
faire, mais ce n'est pas lisible. Tu dis avoir des exemples où c'est
vraiment utile, et donc que ça doit surement être bien plus lisible que
dans l'exemple type "-3 + VRAI = -4". C'est pourquoi je suis intéressé.

--

Jérôme

"Daniel.C" a écrit dans le message de news:

Bonjour.
Il n'est ici pas question d'ajouter du numérique et du booléen mais
d'ajouter du numérique à la correspondance numérique de la valeur
booléenne. Si c'est illicite, il est impossible d'écrire un grand nombre
de formules matricielles basées sur ce qui précède.
Cordialement.
Daniel

D'une manière générale, VRAI, c'est juste pas FAUX, et FAUX est 0.

Que VRAI soit représenté par un nombre égal à 1 ou -1, c'est un
processus interne. On n'additionne pas les carottes et les poireaux,
pareil ici : Additionner un booléen et un nombre n'a pas de sens.
Certes cela te donne un résultat, mais parce que tant que ce n'est pas
fatal, un programme informatique peut faire n'importe quoi.

Un code doit être lisible, ça se lit comme n'importe quel texte. Faire
ce genre de chose, c'est prendre le risque de ne pas avoir un code
maintenable, un code incompréhensible dans quelques temps.

++

--


Jérôme Cuinet

"Gouap" a écrit dans le message de news:

Merci pour cette info, je vais maintenant retoucher mes macros en
tenant compte de cette propriété au lieu de perdre mon temps à
chercher une érreur dans le code.


"Daniel.C" a écrit dans le message de news:

Bonsoir.
VBA, au contraire d'Excel attribue la valeur "-1" à VRAI :
var = True * 1
donne -1 pour var.
Cordialement.
Daniel

Bonsoir,

je ne comprends pas pourquoi quand j'additionne le résultat d'une
macro qui retoure la valeur "Vrai" à une autre valeur positive, je
me retrouve avec ma veleur positive - 1 au lieu de +1.

A = 3 + "Vrai" = 2
A = -3 + "Vrai" = -4

Avez vous une explication à ce phénomène ?


















Avatar
Daniel.C
Autre exemple, compter les valeurs de la plage A1:A10 n'ayant pas leur
équivalent en B1:B10 :
=SOMME(1*(A1:A10<>B1:B10))
Le "1*" transforme les valeur "vrai" en 1 et les valeurs "faux" en 0.
Daniel

Pour le VBA, des touches sur mon clavier ont été inversées, je voulais bien
sûr évoquer les formules Excel. Désolé.

Pour cette fonction, je propose
=NB.SI.ENS(A1:A5;1;B1:B5;2)
qui fait exactement la même chose (en plus même pas besoin d'indiquer que
c'est un calcul matriciel).

Pour l'instant, le calcul matriciel avec des conditions, je vois que je peux
le faire avec les fonctions que me fournis Excel. Si ce n'était pas le cas,
on pourrait en discuter, mais là pour l'instant je trouve qu'on peut écrire
des formules qui ont du sens au lieu de formules qu'il faut s'amuser à
interprêter, et en plus qui risquent d'être fausses lorsqu'on passe du côté
VBA comme l'a fait Gouap.

--


Jérôme

"Daniel.C" a écrit dans le message de news:

La formule matricielle suivante permet de compter les valeurs de la plage
A1:A5 qui sont égales à 1 et dont les valeurs correspondantes de la plage
B1:B5 sont égales à 2 :
=SOMME((A1:A5=1)*(B1:B5=2))
(valider avec Ctrl+Maj+Entrée)
J'ai mis le classeur exemple ici :
http://www.cijoint.fr/cjlink.php?file=cj200909/cijlFU62mr.xls
Quant à VBA, je ne pense pas avoir écrit que j'avais des exemples utiles en
mémoire.
Daniel

nombre de formules matricielles basées sur ce qui précède.



Est-ce que tu aurais des exemples, je ne connais pas ce genre de formules.
Dans Excel, les formules matricielles m'ont surtout servi à faire de la
compensation par moindres carrés.

Illicite n'est pas le mot, puisque VBA sait l'interprêter. Je dis juste
que c'est aussi lisible que de faire "ln (42) + 'C'". L'interpréteur sait
faire, mais ce n'est pas lisible. Tu dis avoir des exemples où c'est
vraiment utile, et donc que ça doit surement être bien plus lisible que
dans l'exemple type "-3 + VRAI = -4". C'est pourquoi je suis intéressé.

--

Jérôme

"Daniel.C" a écrit dans le message de news:

Bonjour.
Il n'est ici pas question d'ajouter du numérique et du booléen mais
d'ajouter du numérique à la correspondance numérique de la valeur
booléenne. Si c'est illicite, il est impossible d'écrire un grand nombre
de formules matricielles basées sur ce qui précède.
Cordialement.
Daniel

D'une manière générale, VRAI, c'est juste pas FAUX, et FAUX est 0.

Que VRAI soit représenté par un nombre égal à 1 ou -1, c'est un
processus interne. On n'additionne pas les carottes et les poireaux,
pareil ici : Additionner un booléen et un nombre n'a pas de sens. Certes
cela te donne un résultat, mais parce que tant que ce n'est pas fatal,
un programme informatique peut faire n'importe quoi.

Un code doit être lisible, ça se lit comme n'importe quel texte. Faire
ce genre de chose, c'est prendre le risque de ne pas avoir un code
maintenable, un code incompréhensible dans quelques temps.

++

--


Jérôme Cuinet

"Gouap" a écrit dans le message de news:

Merci pour cette info, je vais maintenant retoucher mes macros en
tenant compte de cette propriété au lieu de perdre mon temps à chercher
une érreur dans le code.


"Daniel.C" a écrit dans le message de news:

Bonsoir.
VBA, au contraire d'Excel attribue la valeur "-1" à VRAI :
var = True * 1
donne -1 pour var.
Cordialement.
Daniel

Bonsoir,

je ne comprends pas pourquoi quand j'additionne le résultat d'une
macro qui retoure la valeur "Vrai" à une autre valeur positive, je me
retrouve avec ma veleur positive - 1 au lieu de +1.

A = 3 + "Vrai" = 2
A = -3 + "Vrai" = -4

Avez vous une explication à ce phénomène ?
























Avatar
michdenis
| On n'additionne pas les carottes et les poireaux

Et bien, la caissière de l'épicerie ne se prend pas la tête devant
les carottes et les poireaux, elle les additionne avec bien d'autre chose !
;-)
Effectivement, c'est leur valeur numérique (prix) qu'elle additionne et
ce prix n'est valide qu'à l'intérieur de l'établissement. Personne ne
s'offusque de la chose ou se plaint au propriétaire de cultiver une
politique d'incompréhension !

Dans Excel, que l'on puisse transformer une valeur booléenne en
valeur numérique est une caractéristique de l'application ! Rien de
très mystérieux là. De même on peut même transformer une date
en sa valeur numérique ou faire l'inverse... Dans Excel, il y a même
la fonction N() pour convertir ces données (bien que peu utiliser...)

En autant que l'on passe comme argument d'une fonction une valeur
de même nature que nécessite l'argument de cette fonction, cela n'a
rien d'incompréhensible et ne viole aucun principe particulier.

Si tu prétends le contraire, j'aimerais connaître la rationale de cette
affirmation. "Additionner carottes et poireaux" me semblent un peu
tenu comme argumentaire !
Avatar
JérômeC
Les fonctions que j'ai utilisé sont propres à Excel 2007 ou qui ne
fonctionne pas très bien (je n'utilise pas Excel tous les jours de cette
façon). Et il existe en effet surement des cas où ce n'est pas possible de
faire autrement, même avec Excel 2007.

Personne ne se plaint quand la caissière additionne des poireaux et des
carottes car :
- Oui elle ne fait que regarder le code barre.
- Mais aussi, la valeur numérique est clairement affichée. Et si la
caissière me dit un prix différent, je suis en droit de réclamer le prix
affiché.
- Le prix est associé au poireau et à la carotte, mais il n'est pas le
poireau ou la carotte.

Dans Excel, le poireau booléen est aussi une carotte nombre. Cela permet de
bricoler de brillantes astuces. Mais j'ai une certaine vision de la
programmation qui est une programmation maintenable par n'importe qui
connait la grammaire. Pour moi une ligne de code, une formule Excel se lit
comme on lit tout autre texte. Or la différence entre la littérature et la
programmation, c'est qu'en programmation, n'importe qui connaissant la
grammaire doit savoir lire le code, alors qu'en littérature, si une figure
de style n'est pas comprise, ce n'est pas si grave. La brillante astuce,
c'est la figure de style.

La brillante astuce est nécessaire de temps en temps, mais dans ce cas, elle
documentée de telle sorte que ce n'est plus vraiment une astuce.

Ici je conteste 3 + VRAI = 2. Mais je dirais la même chose pour AUJOURDHUI()
* 2, ou cos(AUJOURDHUI()).

Je sais qu'on ne brise ainsi aucune loi, que le calcul est juste. Le
problème est juste le sens, la sémantique. Après on peut s'en foutre
complètement de retrouver le sens à une formule. On comprend aujourd'hui
pourquoi on écrit 3 + VRAI, et ça suffit. Mais ce sujet n'est pas innoncent
"Pourquoi 3 + VRAI = 2 ?"

Personnellement, pour ces histoires de comptage, j'aurais tendance à créer
des colonnes supplémentaire où j'ai des 0 et des 1, et puis j'aditionne
tout. Il y a assez de colonne dans Excel pour cela. S'il y a un langage de
programmation, c'est pour que l'autre programmeur comprenne...


Bien amicalement, (comme dit lSteph, il n'y a pas de raison :P)

--


Jérôme Cuinet

"michdenis" a écrit dans le message de news:

| On n'additionne pas les carottes et les poireaux

Et bien, la caissière de l'épicerie ne se prend pas la tête devant
les carottes et les poireaux, elle les additionne avec bien d'autre chose
!
;-)
Effectivement, c'est leur valeur numérique (prix) qu'elle additionne et
ce prix n'est valide qu'à l'intérieur de l'établissement. Personne ne
s'offusque de la chose ou se plaint au propriétaire de cultiver une
politique d'incompréhension !

Dans Excel, que l'on puisse transformer une valeur booléenne en
valeur numérique est une caractéristique de l'application ! Rien de
très mystérieux là. De même on peut même transformer une date
en sa valeur numérique ou faire l'inverse... Dans Excel, il y a même
la fonction N() pour convertir ces données (bien que peu utiliser...)

En autant que l'on passe comme argument d'une fonction une valeur
de même nature que nécessite l'argument de cette fonction, cela n'a
rien d'incompréhensible et ne viole aucun principe particulier.

Si tu prétends le contraire, j'aimerais connaître la rationale de cette
affirmation. "Additionner carottes et poireaux" me semblent un peu
tenu comme argumentaire !









Avatar
isabelle
bonjour Jérôme,

pour information,

le langage de programmation est tributaire à la base au circuit logique
par exemple pour un circuit monté en TTL les valeurs sont
+5Vdc = 1
0Vdc = 0

pour un circuit monté en CMOS
-5vdc = 0
0Vdc = 1

pour un circuit monté en Dual
il y a la possibilité des valeurs logique -1 0 1
l'avantage en est d'une consommation extrêmement réduite lorsque
l'information est traité par la partie CMOS

isabelle


JérômeC a écrit :
Les fonctions que j'ai utilisé sont propres à Excel 2007 ou qui ne
fonctionne pas très bien (je n'utilise pas Excel tous les jours de cette
façon). Et il existe en effet surement des cas où ce n'est pas possible de
faire autrement, même avec Excel 2007.

Personne ne se plaint quand la caissière additionne des poireaux et des
carottes car :
- Oui elle ne fait que regarder le code barre.
- Mais aussi, la valeur numérique est clairement affichée. Et si la
caissière me dit un prix différent, je suis en droit de réclamer le prix
affiché.
- Le prix est associé au poireau et à la carotte, mais il n'est pas le
poireau ou la carotte.

Dans Excel, le poireau booléen est aussi une carotte nombre. Cela permet de
bricoler de brillantes astuces. Mais j'ai une certaine vision de la
programmation qui est une programmation maintenable par n'importe qui
connait la grammaire. Pour moi une ligne de code, une formule Excel se lit
comme on lit tout autre texte. Or la différence entre la littérature et la
programmation, c'est qu'en programmation, n'importe qui connaissant la
grammaire doit savoir lire le code, alors qu'en littérature, si une figure
de style n'est pas comprise, ce n'est pas si grave. La brillante astuce,
c'est la figure de style.

La brillante astuce est nécessaire de temps en temps, mais dans ce cas, elle
documentée de telle sorte que ce n'est plus vraiment une astuce.

Ici je conteste 3 + VRAI = 2. Mais je dirais la même chose pour AUJOURDHUI()
* 2, ou cos(AUJOURDHUI()).

Je sais qu'on ne brise ainsi aucune loi, que le calcul est juste. Le
problème est juste le sens, la sémantique. Après on peut s'en foutre
complètement de retrouver le sens à une formule. On comprend aujourd'hui
pourquoi on écrit 3 + VRAI, et ça suffit. Mais ce sujet n'est pas innoncent
"Pourquoi 3 + VRAI = 2 ?"

Personnellement, pour ces histoires de comptage, j'aurais tendance à créer
des colonnes supplémentaire où j'ai des 0 et des 1, et puis j'aditionne
tout. Il y a assez de colonne dans Excel pour cela. S'il y a un langage de
programmation, c'est pour que l'autre programmeur comprenne...


Bien amicalement, (comme dit lSteph, il n'y a pas de raison :P)




Avatar
JérômeC
Isabelle,

C'est je crois là où il y a une différence entre les langage de progammation
haut et bas niveau, non ? Le langage bas niveau, au plus près du matériel va
être tributaire des montages électroniques. Le langage haut niveau ignore le
matériel, et est là pour le développeur humain qui va être le plus littéral
possible. Si on s'amuse à faire des langages haut niveau, c'est en partie
pour éviter ce genre de considération, pour arriver à programmer avec des
mots, et non plus avec les niveaux de tension de la sortie de la puce.

++

--


Jérôme C

"isabelle" a écrit dans le message de news:

bonjour Jérôme,

pour information,

le langage de programmation est tributaire à la base au circuit logique
par exemple pour un circuit monté en TTL les valeurs sont
+5Vdc = 1
0Vdc = 0

pour un circuit monté en CMOS
-5vdc = 0
0Vdc = 1

pour un circuit monté en Dual
il y a la possibilité des valeurs logique -1 0 1
l'avantage en est d'une consommation extrêmement réduite lorsque
l'information est traité par la partie CMOS

isabelle


JérômeC a écrit :
Les fonctions que j'ai utilisé sont propres à Excel 2007 ou qui ne
fonctionne pas très bien (je n'utilise pas Excel tous les jours de cette
façon). Et il existe en effet surement des cas où ce n'est pas possible
de faire autrement, même avec Excel 2007.

Personne ne se plaint quand la caissière additionne des poireaux et des
carottes car :
- Oui elle ne fait que regarder le code barre.
- Mais aussi, la valeur numérique est clairement affichée. Et si la
caissière me dit un prix différent, je suis en droit de réclamer le prix
affiché.
- Le prix est associé au poireau et à la carotte, mais il n'est pas le
poireau ou la carotte.

Dans Excel, le poireau booléen est aussi une carotte nombre. Cela permet
de bricoler de brillantes astuces. Mais j'ai une certaine vision de la
programmation qui est une programmation maintenable par n'importe qui
connait la grammaire. Pour moi une ligne de code, une formule Excel se
lit comme on lit tout autre texte. Or la différence entre la littérature
et la programmation, c'est qu'en programmation, n'importe qui connaissant
la grammaire doit savoir lire le code, alors qu'en littérature, si une
figure de style n'est pas comprise, ce n'est pas si grave. La brillante
astuce, c'est la figure de style.

La brillante astuce est nécessaire de temps en temps, mais dans ce cas,
elle documentée de telle sorte que ce n'est plus vraiment une astuce.

Ici je conteste 3 + VRAI = 2. Mais je dirais la même chose pour
AUJOURDHUI() * 2, ou cos(AUJOURDHUI()).

Je sais qu'on ne brise ainsi aucune loi, que le calcul est juste. Le
problème est juste le sens, la sémantique. Après on peut s'en foutre
complètement de retrouver le sens à une formule. On comprend aujourd'hui
pourquoi on écrit 3 + VRAI, et ça suffit. Mais ce sujet n'est pas
innoncent "Pourquoi 3 + VRAI = 2 ?"

Personnellement, pour ces histoires de comptage, j'aurais tendance à
créer des colonnes supplémentaire où j'ai des 0 et des 1, et puis
j'aditionne tout. Il y a assez de colonne dans Excel pour cela. S'il y a
un langage de programmation, c'est pour que l'autre programmeur
comprenne...


Bien amicalement, (comme dit lSteph, il n'y a pas de raison :P)






Avatar
Caetera
"JérômeC" a écrit dans le message de news:
%23%

Personnellement, pour ces histoires de comptage, j'aurais tendance à créer des
colonnes supplémentaire où j'ai des 0 et des 1, et puis j'aditionne tout. Il y
a assez de colonne dans Excel pour cela.



Tu peux aussi utiliser le boulier....
Je pense que tu as de très grosses lacunes concernant les notions basiques (XL)

Etc
Avatar
garnote
Ave mes gaillard(e)s,

Continuez à discuter, c'est fort intéressant.

Bonne journée,
Serge
1 2 3 4 5