A quoi servent les formules matricielles ?

Y compris Power BI, Power Query et toute autre question en lien avec Excel
j
jmd
Fanatique d'Excel
Fanatique d'Excel
Messages : 10'599
Appréciations reçues : 250
Inscrit le : 8 décembre 2007
Version d'Excel : 365 + PowerBI

Message par jmd » 15 août 2019, 17:00

bonjour

depuis le temps que j'utilise Excel, je n'ai jamais utilisé de telles formules

donc je me demande bien à quoi elles servent ?
surtout dans quels cas sont-elles indispensables ?

@ James
oui, c'est par curiosité, suite à un de tes messages récents sur le forum

merci à tous
amitiés
1 membre du forum aime ce message.
Apprenez les fonctions d'Excel.
Exemple "Mettre sous forme de tableau", TCD, "Récupérer des données".
Apprendre les fonctionnalités "récentes".
t
tulipe_4
Passionné d'Excel
Passionné d'Excel
Messages : 8'789
Appréciations reçues : 262
Inscrit le : 1 janvier 2011
Version d'Excel : 2000 2007

Message par tulipe_4 » 15 août 2019, 17:52

bonjour
Monsieur 3 doigts te répond
imagine que tu sois obligé de passer par une étape intermediaire au sein d'une plage (un critère de dates , les 3 premiers carractères....... )
la matricielle va creer une matrice virtuelle qui va mettre en évidence les extractions correspondant au(x) critère(s) cette dernière est réutilisée dans la fonction du depart
prenons le cas de NB.SI(plage;plage) qui doit theoriquement renvoyer un tas de valeurs ,pour t'en convaincre tu saisis
ET(NB.SI(plage ;plage) ;là tu vas voir les valeurs cachées de cette" matrice virtuelle " , desormai c'est ce nouveau panel de valeur qui est exploité dans la fonction globale
nb) Le ET c'est pour voir >>> ne pas utiliiser
pour faire court ; une matricielle c'est une fonction qui mouline du mouliné :P
cordialement
c'est en cherchant qu'on trouve
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 15'067
Appréciations reçues : 896
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 15 août 2019, 17:54

Et puis j'ajoute, c'est juste beau ! (et presque incompréhensible parfois sauf pour certains ici :mrgreen: )

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
j
jmd
Fanatique d'Excel
Fanatique d'Excel
Messages : 10'599
Appréciations reçues : 250
Inscrit le : 8 décembre 2007
Version d'Excel : 365 + PowerBI

Message par jmd » 15 août 2019, 18:22

re

salut Tulipe, Steelson

merci de vos messages, mais je n'ai pas compris

à la place d'une "matrice virtuelle" on peut créer une réelle, non ?

y a-t-il des cas insolubles par d'autres moyens plus simples ?

à vous relire
amitiés
Apprenez les fonctions d'Excel.
Exemple "Mettre sous forme de tableau", TCD, "Récupérer des données".
Apprendre les fonctionnalités "récentes".
t
tulipe_4
Passionné d'Excel
Passionné d'Excel
Messages : 8'789
Appréciations reçues : 262
Inscrit le : 1 janvier 2011
Version d'Excel : 2000 2007

Message par tulipe_4 » 15 août 2019, 19:20

re
oui ,du coup ça s'appelle une ou des colonnes intermediaires
le cas que je connais (je crois.....)
c'est faire la somme de la pemière val avec la 2eme et la troisieme puis la 2+la 3+ la 4 de manière à avoir des paquets de 3 (ou plus) dans la matrice virtuelle escomptée
theoriquement on passe par DECALER et la ça coince ou alors je merdoie ::D , de plus Decaler renvoie un glorieux "volatile" qui embrume tout :mrgreen: ,En gros faire du "step" de VBA
c'est en cherchant qu'on trouve
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 15'067
Appréciations reçues : 896
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 15 août 2019, 19:31

Attention, il est possible aussi de jouer avec des matrices carrées, et là c'est plus difficile de faire une colonne en plus car cela ne suffit pas ! Quoique dans ce cas, la seule fois où j'en ai eu besoin, un SOMMEPROD (qui est quand même matriciel) a suffi ! genre
=SOMMEPROD((A2:A5)*(B1:F1)*(B2:F5))
Mais s'il fallait rajouter une fonction à l'intérieur, alors il aurait fallu passer au { }

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
t
tulipe_4
Passionné d'Excel
Passionné d'Excel
Messages : 8'789
Appréciations reçues : 262
Inscrit le : 1 janvier 2011
Version d'Excel : 2000 2007

Message par tulipe_4 » 15 août 2019, 20:07

certe mais tu n'as pas les sous totaux , et si tu as une plage de 500 val bonjour le sommeprod :lol:
Dans le cas cité pour exemple ,la question aurait été
quel est le plus grand sous total de la somme de 3 valeurs en décalant d'une ligne et pour torturer un peu :lol: ; à quoi correspond -il ??
bien sur directement en une seule formule pour que ça soit élégant :P
cordialement
c'est en cherchant qu'on trouve
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'727
Appréciations reçues : 453
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 15 août 2019, 20:14

Bonjour à tous,

j'expliquerai ainsi :
une matrice est (le plus souvent) une plage.
Imagine que tu as une même opération à faire sur toutes les valeurs, dont tu veux connaitre la somme.
Par exemple, avec 1, 3 5 dans A2:A4 :
=SOMME(A2:A4+1)
Si tu fais une validation simple, excel ne fera la somme que du premier élément de la matrice => 2
Si tu fais F9 en ayant sélectionné A2:A4+1, tu vois que ça te retourne une matrice (normal) : {2;4;6}
La validation matricielle force excel à évaluer d'abord la matrice pour qu'il calcule =SOMME({2;4;6}), et là il peut faire la somme attendue 2+4+6 = > 12
Au passage tu reconnais Sommeprod() qui est une matricielle qui se cache ;-)
Bon à savoir : une formule dans un nom est toujours évaluée en matricielle.

A noter qu'il existe une 2nde forme de formule matricielle : elle te retourne une matrice, et tu dois avoir sélectionné plusieurs cellules avant de valider en matriciel pour lire tous les éléments de la matrice.
Par exemple sélectionne D2:D4, saisi =($A$2:$A$4+1) que tu valides en matriciel. Excel te retourne les 3 éléments de la matrice.
Tu as par exemple =DROITEREG() qui te retourne une matrice de 2 éléments.
Soit tu les récupères un par un avec Index() soit tu fais une matricielle sur plage (horizontale, sinon tu récupèreras 2 fois le premier élément, la matrice retournée ayant un séparateur de colonne : {2.25\12.58})

J'espère ne pas avoir plus embrouillé, pas toujours simple à expliquer ;-)
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
t
tulipe_4
Passionné d'Excel
Passionné d'Excel
Messages : 8'789
Appréciations reçues : 262
Inscrit le : 1 janvier 2011
Version d'Excel : 2000 2007

Message par tulipe_4 » 15 août 2019, 21:06

eriiic a écrit :
15 août 2019, 20:14
Bonjour à tous,

j'expliquerai ainsi :
une matrice est (le plus souvent) une plage.
Imagine que tu as une même opération à faire sur toutes les valeurs, dont tu veux connaitre la somme.
Par exemple, avec 1, 3 5 dans A2:A4 :
=SOMME(A2:A4+1)
Si tu fais une validation simple, excel ne fera la somme que du premier élément de la matrice => 2
Si tu fais F9 en ayant sélectionné A2:A4+1, tu vois que ça te retourne une matrice (normal) : {2;4;6}
La validation matricielle force excel à évaluer d'abord la matrice pour qu'il calcule =SOMME({2;4;6}), et là il peut faire la somme attendue 2+4+6 = > 12
Au passage tu reconnais Sommeprod() qui est une matricielle qui se cache ;-)
Bon à savoir : une formule dans un nom est toujours évaluée en matricielle.

A noter qu'il existe une 2nde forme de formule matricielle : elle te retourne une matrice, et tu dois avoir sélectionné plusieurs cellules avant de valider en matriciel pour lire tous les éléments de la matrice.
Par exemple sélectionne D2:D4, saisi =($A$2:$A$4+1) que tu valides en matriciel. Excel te retourne les 3 éléments de la matrice.
Tu as par exemple =DROITEREG() qui te retourne une matrice de 2 éléments.
Soit tu les récupères un par un avec Index() soit tu fais une matricielle sur plage (horizontale, sinon tu récupèreras 2 fois le premier élément, la matrice retournée ayant un séparateur de colonne : {2.25\12.58})

J'espère ne pas avoir plus embrouillé, pas toujours simple à expliquer ;-)
eric
si peu ::D ::D
c'est en cherchant qu'on trouve
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'727
Appréciations reçues : 453
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 15 août 2019, 23:24

Je suis à fond, je ne peux pas mieux ;;)
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message