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

formule matricielle - explication

9 réponses
Avatar
j-pascal
Bonjour et joyeuses Pâques à tous,

La formule suivante me donne la valeur "MIN" d'une plage en excluant la
valeur "0" : {=MIN(SI(A1:A10=0;"";A1:A10))}, ce qui est plus court que :
=SI(NB.SI(A1:A10;0)=NB(A1:A10);"";PETITE.VALEUR(A1:A10;NB.SI(A1:A10;0)+1)) !
Mon petit cerveau a néanmoins du mal à comprendre le fonctionnement d'une
formule matricielle. Qui veut bien m'expliquer le mystère ? D'avance, Merci
et à bientôt j'espère.
J-Pascal

9 réponses

Avatar
ROCHE Pierre
Bonsoir,
Dans la formule matricielle {=MIN(SI(A1:A10=0;"";A1:A10))}; les traitements
suivants sont réalisés :
1 - Test de A1=0 puis alimentation d'une matrice avec soit "" (=0) soit la
valeur de A1
2 - Test de A2=0 puis alimentation de la même matrice avec soit "" (=0) soit
la valeur de A2
3 - Et ainsi de suite pour les cellules de A3 à A10.
Cela donne, en calcul intermédiaire, quelque chose du type
=MIN({1;"";3;"";5;6;"";8;"";10})
4 - Application de la fonction MIN sur cette matrice sachant que les "" sont
ignorés.
Cela donne en résultat 1.

Généralités sur ta fonction SI en matricielle :
Test pour chaque cellule de la plage de cellules (A1:A10) par rapport à 0
avec renvoi soit de "" si la CELLULE TESTEE est nulle (=0) soit de la valeur
de la CELLULE ELLE-MEME. => 10 mêmes tests sont effectués

Cordialement

"j-pascal" a écrit dans le message de news:
ONcqV%
Bonjour et joyeuses Pâques à tous,

La formule suivante me donne la valeur "MIN" d'une plage en excluant la
valeur "0" : {=MIN(SI(A1:A10=0;"";A1:A10))}, ce qui est plus court que :
=SI(NB.SI(A1:A10;0)=NB(A1:A10);"";PETITE.VALEUR(A1:A10;NB.SI(A1:A10;0)+1))
!
Mon petit cerveau a néanmoins du mal à comprendre le fonctionnement d'une
formule matricielle. Qui veut bien m'expliquer le mystère ? D'avance,
Merci
et à bientôt j'espère.
J-Pascal




Avatar
JièL Goubert
Bonjoir(c) j-pascal

23:30 et toujours pas de réponse ? c'est paques ou quoi ? ;-)))

bon j'essaye
Grosso modo, une fontion matricielle permet de comparer et/ou de calculer
sur une série d'éléments comme s'il etait tous vu individuellement un par un.

dans la fonction, on lit "SI(A1:A10=0" ce qui peut s'interpréter comme :
si chacune des cellules de la plage _prise individuellement_ (trés
important) contient la valeur 0 alors...
un peu comme si vous ecriviez dans plusieurs cellules :
SI(A1=0;
SI(A2=0;
SI(A3=0;
...
donc, dans la cas ou la cellule contient 0, on retourne "", sinon la
valeur inscrite dans la cellule
ensuite toute ces valeurs (ou tout ces "") sont analysées par la fontion
MIN, et comme "" n'est pas une valeur, la données n'est pas prise en compte.

Voila, j'espère avoir été clair (pas sur quand même)
si j'ai dis une bétises, d'autres (que je remercie d'avance) ne manqueront
pas de corriger.

--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr/

Le 27/03/2005 21:02 vous avez écrit ceci :
Bonjour et joyeuses Pâques à tous,

La formule suivante me donne la valeur "MIN" d'une plage en excluant la
valeur "0" : {=MIN(SI(A1:A10=0;"";A1:A10))}, ce qui est plus court que :
=SI(NB.SI(A1:A10;0)=NB(A1:A10);"";PETITE.VALEUR(A1:A10;NB.SI(A1:A10;0)+1)) !
Mon petit cerveau a néanmoins du mal à comprendre le fonctionnement d'une
formule matricielle. Qui veut bien m'expliquer le mystère ? D'avance, Merci
et à bientôt j'espère.
J-Pascal


Avatar
MichDenis
Bonjour J-Pascal,

Le truc avec les formules matricielles, c'est qu'excel génère des tableaux qui gardent en mémoire le temps d'évaluer la
formule. Il faut donc essayer de voir quels sont ces tableaux .

{=MIN(SI(A1:A5=0;"";A1:A5))}

A ) Sélectionne dans la barre des formules la section suivante de la formule :

A1:A5=0

Tu obtiendras ceci en colonne1,

En Colonne2, est la valeur quelconque
contenu dans A1:A5

En Colonne3, l'interaction entre la colonne 1 et 2
pour évaluer cette colonne, tu dois savoir que pour
excel, Vrai = 1 et Faux = 0
La colonne3 représente ceci :
Sélectionne cette section SI(A1:A5=0;"";A1:A5)
Dans la barre des formules et appuies sur F9

Et tu lis le tableau de cette manière:
Si c'est vrai que A1 est égale à 0 donc "" ou A1
Et tu répètes pour chacune des lignes.

Colonne1 Colonne2 Colonne3
Vrai 1 1
Faux 0 ""
Vrai 3 3
Vrai 4 4
Vrai 5 5

La fonction Min de la fomule évalue le résultat :
=Min(1;"";3;4;5) = 1

Si tu t'amuses à sélectionner des sections de formules et utiliser la touche F9, tu pourras voir comment excel évalue
chacune des sections.


Salutations!




"j-pascal" a écrit dans le message de news: ONcqV%
Bonjour et joyeuses Pâques à tous,

La formule suivante me donne la valeur "MIN" d'une plage en excluant la
valeur "0" : {=MIN(SI(A1:A10=0;"";A1:A10))}, ce qui est plus court que :
=SI(NB.SI(A1:A10;0)=NB(A1:A10);"";PETITE.VALEUR(A1:A10;NB.SI(A1:A10;0)+1)) !
Mon petit cerveau a néanmoins du mal à comprendre le fonctionnement d'une
formule matricielle. Qui veut bien m'expliquer le mystère ? D'avance, Merci
et à bientôt j'espère.
J-Pascal
Avatar
ROCHE Pierre
Re-bonsoir
Petite astuce pour comprendre ce qui se passe.
- Mets toi en édition dans ta formule
- Sélectionnes uniquement la partie suivante de ta formule :
SI(A1:A10=0;"";A1:A10)
- Appuies sur F9 => tu auras le résultat de ce que tu as sélectionné et
regardes le contenu (matrice)
- Surtout fais ESC et non ENTER sinon tu vas entrer dans ta formule le
résultat de cette formule et non pas la formule elle-même.
Re cordialement


"j-pascal" a écrit dans le message de news:
ONcqV%
Bonjour et joyeuses Pâques à tous,

La formule suivante me donne la valeur "MIN" d'une plage en excluant la
valeur "0" : {=MIN(SI(A1:A10=0;"";A1:A10))}, ce qui est plus court que :
=SI(NB.SI(A1:A10;0)=NB(A1:A10);"";PETITE.VALEUR(A1:A10;NB.SI(A1:A10;0)+1))
!
Mon petit cerveau a néanmoins du mal à comprendre le fonctionnement d'une
formule matricielle. Qui veut bien m'expliquer le mystère ? D'avance,
Merci
et à bientôt j'espère.
J-Pascal




Avatar
ROCHE Pierre
Bonsoir,

La fonction Min de la fomule évalue le résultat :
=Min(1;"";3;4;5) = 1


En essayant cette formule, on n'obtient pas 1 mais #VALEUR!
Il faut mettre 1, "", 3, 4 et 5 entre accolades => matrice
Ceci sur Excel 97, peut-être que cela marche sur les versions supérieures ?

Cordialement

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

Bonjour J-Pascal,

Le truc avec les formules matricielles, c'est qu'excel génère des tableaux
qui gardent en mémoire le temps d'évaluer la
formule. Il faut donc essayer de voir quels sont ces tableaux .

{=MIN(SI(A1:A5=0;"";A1:A5))}

A ) Sélectionne dans la barre des formules la section suivante de la
formule :

A1:A5=0

Tu obtiendras ceci en colonne1,

En Colonne2, est la valeur quelconque
contenu dans A1:A5

En Colonne3, l'interaction entre la colonne 1 et 2
pour évaluer cette colonne, tu dois savoir que pour
excel, Vrai = 1 et Faux = 0
La colonne3 représente ceci :
Sélectionne cette section SI(A1:A5=0;"";A1:A5)
Dans la barre des formules et appuies sur F9

Et tu lis le tableau de cette manière:
Si c'est vrai que A1 est égale à 0 donc "" ou A1
Et tu répètes pour chacune des lignes.

Colonne1 Colonne2 Colonne3
Vrai 1 1
Faux 0 ""
Vrai 3 3
Vrai 4 4
Vrai 5 5

La fonction Min de la fomule évalue le résultat :
=Min(1;"";3;4;5) = 1

Si tu t'amuses à sélectionner des sections de formules et utiliser la
touche F9, tu pourras voir comment excel évalue
chacune des sections.


Salutations!




"j-pascal" a écrit dans le message de news:
ONcqV%
Bonjour et joyeuses Pâques à tous,

La formule suivante me donne la valeur "MIN" d'une plage en excluant la
valeur "0" : {=MIN(SI(A1:A10=0;"";A1:A10))}, ce qui est plus court que :
=SI(NB.SI(A1:A10;0)=NB(A1:A10);"";PETITE.VALEUR(A1:A10;NB.SI(A1:A10;0)+1))
!
Mon petit cerveau a néanmoins du mal à comprendre le fonctionnement d'une
formule matricielle. Qui veut bien m'expliquer le mystère ? D'avance,
Merci
et à bientôt j'espère.
J-Pascal





Avatar
MichDenis
Bonjour Pierre,

=Min(1;"";3;4;5) = 1
Ceci était pour tenir compte du tableau (colonnes) où j'ai présenté le résultat mais pour terminer la démonstration en
beauté ...j'aurais dû ajouter ce qui suit :

Si tu préfères, je termine le raisonnement comme ceci :
après l'évaluation de ceci : SI(A1:A5=0;"";A1:A5)

les valeurs qui ont réussi à passer le test dans mon exemple est :
On a ces 2 petits tableaux :
(Vrai;Vrai;Vrai;Vrai) (1;3;4;5)

Si on résout ce tableau, sachant que Vrai = 1

Vrai * 1 = 1
Vrai * 3 = 3
Vrai * 4 = 4
Vrai * 5 = 5

Le dernier petit tableau qu'excel aura c'est ce dernier : =Min(1;3;4;5)

Ça te convient ?


Salutations!



"ROCHE Pierre" a écrit dans le message de news:
Bonsoir,

La fonction Min de la fomule évalue le résultat :
=Min(1;"";3;4;5) = 1


En essayant cette formule, on n'obtient pas 1 mais #VALEUR!
Il faut mettre 1, "", 3, 4 et 5 entre accolades => matrice
Ceci sur Excel 97, peut-être que cela marche sur les versions supérieures ?

Cordialement

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

Bonjour J-Pascal,

Le truc avec les formules matricielles, c'est qu'excel génère des tableaux
qui gardent en mémoire le temps d'évaluer la
formule. Il faut donc essayer de voir quels sont ces tableaux .

{=MIN(SI(A1:A5=0;"";A1:A5))}

A ) Sélectionne dans la barre des formules la section suivante de la
formule :

A1:A5=0

Tu obtiendras ceci en colonne1,

En Colonne2, est la valeur quelconque
contenu dans A1:A5

En Colonne3, l'interaction entre la colonne 1 et 2
pour évaluer cette colonne, tu dois savoir que pour
excel, Vrai = 1 et Faux = 0
La colonne3 représente ceci :
Sélectionne cette section SI(A1:A5=0;"";A1:A5)
Dans la barre des formules et appuies sur F9

Et tu lis le tableau de cette manière:
Si c'est vrai que A1 est égale à 0 donc "" ou A1
Et tu répètes pour chacune des lignes.

Colonne1 Colonne2 Colonne3
Vrai 1 1
Faux 0 ""
Vrai 3 3
Vrai 4 4
Vrai 5 5

La fonction Min de la fomule évalue le résultat :
=Min(1;"";3;4;5) = 1

Si tu t'amuses à sélectionner des sections de formules et utiliser la
touche F9, tu pourras voir comment excel évalue
chacune des sections.


Salutations!




"j-pascal" a écrit dans le message de news:
ONcqV%
Bonjour et joyeuses Pâques à tous,

La formule suivante me donne la valeur "MIN" d'une plage en excluant la
valeur "0" : {=MIN(SI(A1:A10=0;"";A1:A10))}, ce qui est plus court que :
=SI(NB.SI(A1:A10;0)=NB(A1:A10);"";PETITE.VALEUR(A1:A10;NB.SI(A1:A10;0)+1))
!
Mon petit cerveau a néanmoins du mal à comprendre le fonctionnement d'une
formule matricielle. Qui veut bien m'expliquer le mystère ? D'avance,
Merci
et à bientôt j'espère.
J-Pascal





Avatar
MichDenis
Et une dernière remarque,

Comme c'est le min d'un tableau, cela devrait s'écrire comme cela :

=MIN({1;"";3;4;5})
= 1

Comme pour la fonction somme() et d'autres, les sections(cellules) contenant autre chose que des nombres ne sont pas
pris en compte !


Salutations!


"ROCHE Pierre" a écrit dans le message de news:
Bonsoir,

La fonction Min de la fomule évalue le résultat :
=Min(1;"";3;4;5) = 1


En essayant cette formule, on n'obtient pas 1 mais #VALEUR!
Il faut mettre 1, "", 3, 4 et 5 entre accolades => matrice
Ceci sur Excel 97, peut-être que cela marche sur les versions supérieures ?

Cordialement

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

Bonjour J-Pascal,

Le truc avec les formules matricielles, c'est qu'excel génère des tableaux
qui gardent en mémoire le temps d'évaluer la
formule. Il faut donc essayer de voir quels sont ces tableaux .

{=MIN(SI(A1:A5=0;"";A1:A5))}

A ) Sélectionne dans la barre des formules la section suivante de la
formule :

A1:A5=0

Tu obtiendras ceci en colonne1,

En Colonne2, est la valeur quelconque
contenu dans A1:A5

En Colonne3, l'interaction entre la colonne 1 et 2
pour évaluer cette colonne, tu dois savoir que pour
excel, Vrai = 1 et Faux = 0
La colonne3 représente ceci :
Sélectionne cette section SI(A1:A5=0;"";A1:A5)
Dans la barre des formules et appuies sur F9

Et tu lis le tableau de cette manière:
Si c'est vrai que A1 est égale à 0 donc "" ou A1
Et tu répètes pour chacune des lignes.

Colonne1 Colonne2 Colonne3
Vrai 1 1
Faux 0 ""
Vrai 3 3
Vrai 4 4
Vrai 5 5

La fonction Min de la fomule évalue le résultat :
=Min(1;"";3;4;5) = 1

Si tu t'amuses à sélectionner des sections de formules et utiliser la
touche F9, tu pourras voir comment excel évalue
chacune des sections.


Salutations!




"j-pascal" a écrit dans le message de news:
ONcqV%
Bonjour et joyeuses Pâques à tous,

La formule suivante me donne la valeur "MIN" d'une plage en excluant la
valeur "0" : {=MIN(SI(A1:A10=0;"";A1:A10))}, ce qui est plus court que :
=SI(NB.SI(A1:A10;0)=NB(A1:A10);"";PETITE.VALEUR(A1:A10;NB.SI(A1:A10;0)+1))
!
Mon petit cerveau a néanmoins du mal à comprendre le fonctionnement d'une
formule matricielle. Qui veut bien m'expliquer le mystère ? D'avance,
Merci
et à bientôt j'espère.
J-Pascal





Avatar
ROCHE Pierre
No problémo !!

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

Bonjour Pierre,

=Min(1;"";3;4;5) = 1
Ceci était pour tenir compte du tableau (colonnes) où j'ai présenté le
résultat mais pour terminer la démonstration en
beauté ...j'aurais dû ajouter ce qui suit :

Si tu préfères, je termine le raisonnement comme ceci :
après l'évaluation de ceci : SI(A1:A5=0;"";A1:A5)

les valeurs qui ont réussi à passer le test dans mon exemple est :
On a ces 2 petits tableaux :
(Vrai;Vrai;Vrai;Vrai) (1;3;4;5)

Si on résout ce tableau, sachant que Vrai = 1

Vrai * 1 = 1
Vrai * 3 = 3
Vrai * 4 = 4
Vrai * 5 = 5

Le dernier petit tableau qu'excel aura c'est ce dernier : =Min(1;3;4;5)

Ça te convient ?


Salutations!



"ROCHE Pierre" a écrit dans le message de news:

Bonsoir,

La fonction Min de la fomule évalue le résultat :
=Min(1;"";3;4;5) = 1


En essayant cette formule, on n'obtient pas 1 mais #VALEUR!
Il faut mettre 1, "", 3, 4 et 5 entre accolades => matrice
Ceci sur Excel 97, peut-être que cela marche sur les versions supérieures
?

Cordialement

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

Bonjour J-Pascal,

Le truc avec les formules matricielles, c'est qu'excel génère des
tableaux
qui gardent en mémoire le temps d'évaluer la
formule. Il faut donc essayer de voir quels sont ces tableaux .

{=MIN(SI(A1:A5=0;"";A1:A5))}

A ) Sélectionne dans la barre des formules la section suivante de la
formule :

A1:A5=0

Tu obtiendras ceci en colonne1,

En Colonne2, est la valeur quelconque
contenu dans A1:A5

En Colonne3, l'interaction entre la colonne 1 et 2
pour évaluer cette colonne, tu dois savoir que pour
excel, Vrai = 1 et Faux = 0
La colonne3 représente ceci :
Sélectionne cette section SI(A1:A5=0;"";A1:A5)
Dans la barre des formules et appuies sur F9

Et tu lis le tableau de cette manière:
Si c'est vrai que A1 est égale à 0 donc "" ou A1
Et tu répètes pour chacune des lignes.

Colonne1 Colonne2 Colonne3
Vrai 1 1
Faux 0 ""
Vrai 3 3
Vrai 4 4
Vrai 5 5

La fonction Min de la fomule évalue le résultat :
=Min(1;"";3;4;5) = 1

Si tu t'amuses à sélectionner des sections de formules et utiliser la
touche F9, tu pourras voir comment excel évalue
chacune des sections.


Salutations!




"j-pascal" a écrit dans le message de news:
ONcqV%
Bonjour et joyeuses Pâques à tous,

La formule suivante me donne la valeur "MIN" d'une plage en excluant la
valeur "0" : {=MIN(SI(A1:A10=0;"";A1:A10))}, ce qui est plus court que :
=SI(NB.SI(A1:A10;0)=NB(A1:A10);"";PETITE.VALEUR(A1:A10;NB.SI(A1:A10;0)+1))
!
Mon petit cerveau a néanmoins du mal à comprendre le fonctionnement d'une
formule matricielle. Qui veut bien m'expliquer le mystère ? D'avance,
Merci
et à bientôt j'espère.
J-Pascal










Avatar
j-pascal
Merci Pierre,
Comme ta réponse est la première, j'ai eu un peu de mal à comprendre, mais
en lisant la suite, cela me paraît plus clair. Ton message "post scriptum"
est intéressant pour évaluer le contenu de la matrice et résume bien ce qui
précède.
2 Questions subsidaires :
- y-a-t-il un inconvénient à utiliser les formules matricielles (parce
qu'apparemment c'est très efficace !) ?
- si on a tapé ENTER à la place de CTRL SHIFT, on ne crée pas la formule
matricielle, faut-il retaper le tout pour réparer l'erreur (car CTRL SHIFT
ne retransforme pas ladite formule en formule matricielle) ?
Encore merci à toi (et aux autres) pour ces explications.
J-Pascal
"ROCHE Pierre" a écrit dans le message de
news:
Bonsoir,
Dans la formule matricielle {=MIN(SI(A1:A10=0;"";A1:A10))}; les
traitements

suivants sont réalisés :
1 - Test de A1=0 puis alimentation d'une matrice avec soit "" (=0) soit la
valeur de A1
2 - Test de A2=0 puis alimentation de la même matrice avec soit "" (=0)
soit

la valeur de A2
3 - Et ainsi de suite pour les cellules de A3 à A10.
Cela donne, en calcul intermédiaire, quelque chose du type
=MIN({1;"";3;"";5;6;"";8;"";10})
4 - Application de la fonction MIN sur cette matrice sachant que les ""
sont

ignorés.
Cela donne en résultat 1.

Généralités sur ta fonction SI en matricielle :
Test pour chaque cellule de la plage de cellules (A1:A10) par rapport à 0
avec renvoi soit de "" si la CELLULE TESTEE est nulle (=0) soit de la
valeur

de la CELLULE ELLE-MEME. => 10 mêmes tests sont effectués

Cordialement

"j-pascal" a écrit dans le message de news:
ONcqV%
Bonjour et joyeuses Pâques à tous,

La formule suivante me donne la valeur "MIN" d'une plage en excluant la
valeur "0" : {=MIN(SI(A1:A10=0;"";A1:A10))}, ce qui est plus court que :

=SI(NB.SI(A1:A10;0)=NB(A1:A10);"";PETITE.VALEUR(A1:A10;NB.SI(A1:A10;0)+1))


!
Mon petit cerveau a néanmoins du mal à comprendre le fonctionnement
d'une


formule matricielle. Qui veut bien m'expliquer le mystère ? D'avance,
Merci
et à bientôt j'espère.
J-Pascal