Re: fonction N | ||
---|---|---|
Inscription: 09/05/2007
De Courcelles-les-Montbéliard
Messages:
286
Système d'exploitation: PC & Mac Version Excel utilisée: Mac 2004 - 2011, et PC 2003 - 2010 |
Posté le : 01-06-2007 21h33
Bonsoir Jacques
Dans la formule =SOMMEPROD(($A2=$A$4:$A$7);($B$4:$B$7)) La première matrice qui est le résultat par la comparation, elle contient une valeur logique, VRAI ou FAUX. SOMMEPROD va multiplier chaque valeurs de matrice pour en faire la totalisation. Dans Excel, la valeur logique VRAI est considérée comme un 1, et FAUX comme un 0. Nous pouvons le vérifier en tapant cette formule dans une cellule =VRAI()*1 ou =FAUX()*1 Ce principe de convertion n'est pas opéré par la fonction SOMMEPROD d'Excel lors d'une multiplication entre deux matrices d'argument différent. C'est pour cela que la formule retourne 0. Dans la formule =SOMMEPROD(N($A2=$A$4:$A$7);($B$4:$B$7)), la fonction N provoque la conversion de la matrice comme le ferait ($A2=$A$4:$A$7)*1, le première matrice contient donc que des données numériques, pour le vérifier il suffit de sélectionner les cellules D4:D7, et de saisir la barre de formule, la formule suivante =N(A4:A7=A2) en la validant en tant que matricielle. @+Jean-Marie |
|
|
Re: matricielle 2 plages d'ampleur inégale | ||
---|---|---|
Inscription: 09/05/2007
De Courcelles-les-Montbéliard
Messages:
286
Système d'exploitation: PC & Mac Version Excel utilisée: Mac 2004 - 2011, et PC 2003 - 2010 |
Posté le : 30-05-2007 22h05
Bonsoir
=SOMME(N($A3=$A$18:$A$29)*{1.1.1.1.1.1.1.1}*N($B$18:$B$29=TRANSPOSE($C$8:$C$15))*TRANSPOSE($D$8:$D$15)) et avec un petit commentaire : moins belle que la vôtre car elle n'automatise pas {1.1.1.1.1.1.1.1}. Après analyse, la partie {1.1.1.1.1.1.1.1}, n'est pas utile, tout comme l'utilisation de la fonction N Donc la formule à retenir ... =SOMME(($A3=$A$18:$A$29)*($B$18:$B$29=TRANSPOSE($C$8:$C$15))*TRANSPOSE($D$8:$D$15)) Et là, c'est moi qui applaudit, que l'auteur en soit remercié. L'utilisation de la fonction TRANSPOSE permet de créer une matrice à deux dimensions. Superbe, je n'aurais jamais pensé utiliser cette fonction pour résoudre ce problème. Comme quoi on apprend tous les jours. Didier ton forum, commence de bien belle manière. Que les futures questions restent au même niveaux, et on va se régaler. @+Jean-Marie |
|
|
Re: Balises de code VBA et Formules pour les Forums | ||
---|---|---|
Inscription: 09/05/2007
De Courcelles-les-Montbéliard
Messages:
286
Système d'exploitation: PC & Mac Version Excel utilisée: Mac 2004 - 2011, et PC 2003 - 2010 |
Posté le : 28-05-2007 11h29
Salut Didier
Bravo pour ta persévérance, tu améliores un fois de plus la qualité de ton site. @+Jean-Marie |
|
|
Re: matricielle 2 plages d'ampleur inégale | ||
---|---|---|
Inscription: 09/05/2007
De Courcelles-les-Montbéliard
Messages:
286
Système d'exploitation: PC & Mac Version Excel utilisée: Mac 2004 - 2011, et PC 2003 - 2010 |
Posté le : 28-05-2007 09h49
Bonjour
Après des heures de recherche (sisi) Une formule matricielle à mettre en D3, valable pour toutes les couleurs, sauf la "KO", à tirer vers la droite et vers le bas
=SOMME(FREQUENCE(SI(($A$18:$A$29=$A3)*(ESTNUM(EQUIV($B$18:$B$29;$C$8:$C$15;0)));LIGNE($A$1:$A$12));SI(ESTNUM(EQUIV($C$8:$C$15;$B$18:$B$29;0));EQUIV($C$8:$C$15;$B$18:$B$29;0);))*D$8:D$16)
Le problème dans les multiplications de matrices, c'est qu'elles doivent être de longueur identique. Pour passer une matrice "Verte" à une matrice "jaune", je suis passé par la fonction FREQUENCE, qui va retourner une matrice de 1 et de 0 contient les numéros d'index qui correspondent à la couleur voulue indiquée en $A3, ($A$18:$A$29=$A3) (ESTNUM(EQUIV($B$18:$B$29;$C$8:$C$15;0)) permet de savoir si la référence est présente dans la plage "jaune" LIGNE($A$1:$A$12), retourne le numéro d'index, la longueur de la plage doit être identique à la longueur de la plage "verte" et doit commencer à la ligne 1. Résultat de la matrice {0;0;3;0;0;6;0;0;0;0;0;12} contient les numéros d'index des références de la matrice "jaune" dans la matrice "verte", ce numéro est retourné par la fonction EQUIV la condition permet d'écarter les références "KO" non présentent dans la matrice "verte", ce qui provoquerait une erreur par la suite. Résultat de la matrice {2;3;0;1;4;6;12;10} La fonction fréquence va retourner une matrice qui sera ensuite multipliée par la plage D$8:D$16, vous pouvez noter que cette plage est plus longue d'une unité, en effet fréquence rajoute une unité supplémentaire à la longueur de la matrice de départ. Résultat de la matrice {0;1;0;0;0;1;1;0;0} Formule pour la cellule D5, donc uniquement à tirer vers la droite
=SOMMEPROD(ESTNA(EQUIV($C$8:$C$15;$B$18:$B$29;0))*D$8:D$15)
la partie ESTNA(EQUIV($C$8:$C$15;$B$18:$B$29;0)), permet de tester la non présence de la référence de la plage "jaune", dans la plage "verte" J'espère que mes explications sont suffisantes, dans le cas contraire n'hésite pas, cela me permet aussi de m'améliorer. @+Jean-Marie
Edité par JeanMarie le 29/05/2007 23:03:29
|
|
|
Re: Félicitation | ||
---|---|---|
Inscription: 09/05/2007
De Courcelles-les-Montbéliard
Messages:
286
Système d'exploitation: PC & Mac Version Excel utilisée: Mac 2004 - 2011, et PC 2003 - 2010 |
Posté le : 21-05-2007 20h52
Bonjour Didier
Te voilà une nouvelle fois père virtuel. Que ce nouveau bébé, grandisse vite, dans une ambiance chaleureuse, et conviviale. Que ces intervenants puissent lui permettre d'apprendre aisément. Je félicite le papa, et je n'oublie pas la maman qui ta permis de t'occuper de la gestation. Ah! j'oubliai, doublement merci en tant que "formuliste", pour la zone "Formule Excel", et son formatage particulier. :mad: @+Jean-Marie |
|
|