Somme matricielle avec INDEX et EQUIV

28 réponses
Avatar
Jean-Luc CAPEL
Bonjour,
j'ai un soucis sur un classeur excel, voici ci-dessous un exemple simple
et concret.

colonne 1 (liste au hasard de 5 lettres entre la lettre A et E)
A
B
A
C
E

Colonne 2 vierge

Colonne 3 (les 5 1ère lettre de l’alphabet)
A
B
C
D
E

Colonne 4 (ex : Valeur binaire des lettres précédentes)
0
1
0
1
0

en cellule A7 Je veux faire la somme des valeurs binaires des lettres
présentes en colonne 1

J'ai essayé la formule matricielle suivante, mais je n'obtiens pas le
résultat attendu :
{=SOMME(INDEX(D1:D5;EQUIV(A1:A5;C1:C5;0)))}

qq'un aurait il une idee pour faire ce calcul sans VBA mais en utilisant
les matrices

merci de vos réponses
Salutations
JLuc

---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus

10 réponses

1 2 3
Avatar
Jacquouille
Bonsoir
Ai-je bien compris?
=sommeprod((a1:a10="A")*(d1:d10))



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jean-Luc CAPEL" a écrit dans le message de groupe de discussion :
56439bb2$0$3048$

Bonjour,
j'ai un soucis sur un classeur excel, voici ci-dessous un exemple simple
et concret.

colonne 1 (liste au hasard de 5 lettres entre la lettre A et E)
A
B
A
C
E

Colonne 2 vierge

Colonne 3 (les 5 1ère lettre de l’alphabet)
A
B
C
D
E

Colonne 4 (ex : Valeur binaire des lettres précédentes)
0
1
0
1
0

en cellule A7 Je veux faire la somme des valeurs binaires des lettres
présentes en colonne 1

J'ai essayé la formule matricielle suivante, mais je n'obtiens pas le
résultat attendu :
{=SOMME(INDEX(D1:D5;EQUIV(A1:A5;C1:C5;0)))}

qq'un aurait il une idee pour faire ce calcul sans VBA mais en utilisant
les matrices

merci de vos réponses
Salutations
JLuc

---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
https://www.avast.com/antivirus


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
Jean-Luc CAPEL
Merci pour ta réponse
mais ce n'est pas ce que j'attendais
Il me semble que ta formule ne prend en compte que la lettre A de la
colonne 1
Alors que je cherche à faire la somme des valeurs des lettres de colonne
1, valeurs qui sont fournis pour chacune des lettres ds le tableau C1:D5

Le 11/11/2015 22:04, Jacquouille a écrit :
Bonsoir
Ai-je bien compris?
=sommeprod((a1:a10="A")*(d1:d10))



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jean-Luc CAPEL" a écrit dans le message de groupe de discussion :
56439bb2$0$3048$

Bonjour,
j'ai un soucis sur un classeur excel, voici ci-dessous un exemple simple
et concret.

colonne 1 (liste au hasard de 5 lettres entre la lettre A et E)
A
B
A
C
E

Colonne 2 vierge

Colonne 3 (les 5 1ère lettre de l’alphabet)
A
B
C
D
E

Colonne 4 (ex : Valeur binaire des lettres précédentes)
0
1
0
1
0

en cellule A7 Je veux faire la somme des valeurs binaires des lettres
présentes en colonne 1

J'ai essayé la formule matricielle suivante, mais je n'obtiens pas le
résultat attendu :
{=SOMME(INDEX(D1:D5;EQUIV(A1:A5;C1:C5;0)))}

qq'un aurait il une idee pour faire ce calcul sans VBA mais en utilisant
les matrices

merci de vos réponses
Salutations
JLuc

---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
https://www.avast.com/antivirus

---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
http://www.avast.com





---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Avatar
isabelle
bonjour Jean-Luc,

=SOMMEPROD((A1:A5Á:C5)*(D1:D5))

isabelle
Avatar
Jean-Luc CAPEL
Merci pour ta réponse Isabelle, mais ta solution ne correspond pas non
plus au calcul recherché.
Ta proposition compare les 2 plages A1:A5 et C1:C5.
Alors que je veux chercher pour chaque éléments de la plage A1:A5 sa
valeur contenu dans le tableau de correspondance C1:D5

Dans mon exemple, cette "somme" sur la colonne 1 dois donner :
A -> 0
B -> 1
A -> 0
C -> 0
E -> 0
___
càd 1

Le 12/11/2015 05:03, isabelle a écrit :
bonjour Jean-Luc,

=SOMMEPROD((A1:A5Á:C5)*(D1:D5))

isabelle





---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Avatar
Jean-Luc CAPEL
Merci pour ta réponse Isabelle, mais ta solution ne correspond pas non
plus au calcul recherché.
Ta proposition compare les 2 plages A1:A5 et C1:C5.
Alors que je veux chercher pour chaque éléments de la plage A1:A5 sa
valeur contenu dans le tableau de correspondance C1:D5

Dans mon exemple, cette "somme" sur la colonne 1 dois donner :
A -> 0
B -> 1
A -> 0
C -> 0
E -> 0
___
càd 1

Le 12/11/2015 05:03, isabelle a écrit :
bonjour Jean-Luc,

=SOMMEPROD((A1:A5Á:C5)*(D1:D5))

isabelle





---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Avatar
Patrick
Bonjour,

"c" devrait donner "1" non ? la 4e ligen en colonne A est un C et en
face il y a un 1...


Le 12/11/2015 09:19, Jean-Luc CAPEL a écrit :
Merci pour ta réponse Isabelle, mais ta solution ne correspond pas non
plus au calcul recherché.
Ta proposition compare les 2 plages A1:A5 et C1:C5.
Alors que je veux chercher pour chaque éléments de la plage A1:A5 sa
valeur contenu dans le tableau de correspondance C1:D5

Dans mon exemple, cette "somme" sur la colonne 1 dois donner :
A -> 0
B -> 1
A -> 0
C -> 0
E -> 0
___
càd 1

Le 12/11/2015 05:03, isabelle a écrit :
bonjour Jean-Luc,

=SOMMEPROD((A1:A5Á:C5)*(D1:D5))

isabelle





---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
https://www.avast.com/antivirus





---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Avatar
Jean-Luc CAPEL
Merci de te préoccuper de mon probleme qui pour l'instant n'aboutit pas
Non c'est bien 0 pour C
J'ai tiré au hasard 5 lettres A,B,A,C,E prise parmi les 5 1ère lettres
de l'alphabet

pour le 1 er tirage : A, cette lettre a bien dans le tableau des
valeurs, la valeur 0
pour le 2ème tirage : B, cette lettre a bien dans le tableau des
valeurs, la valeur 1
pour le 3ème tirage : A, cette lettre a bien dans le tableau des
valeurs, la valeur 0
pour le 4ème tirage : C, cette lettre a bien dans le tableau des
valeurs, la valeur 0
pour le 5ème tirage : E, cette lettre a bien dans le tableau des
valeurs, la valeur 0
(je me suis arreté à 5 tirages pour l'exemple mais j'aurais pu faire
plus ou moins)

Si je fais la somme de toutes ces valeurs de correspondances, j'obtiens
bien ds cet exemple la valeur de 1

QQ'un à t'il une idée pour répondre à ce probleme par une formule
matricielle du type
{=SOMME(INDEX(D1:D5;EQUIV(A1:A5;C1:C5;0)))}
il me manque qq chose car cela ne retourne que la 1ère valeur de la 1ère
lettre
Autre chose de curieux
Si j'évalue ma formule par F9
la fct EQUIV me renvoie bien une matrice 1 sur 5 = {1;2;1;3;5}
par contre
le fct INDEX me renvoie #VALEUR

Ai je choisi les bonnes fcts pour répondre à ce prblm

Merci de vos lumière
je suis complétement sec la dessus
Salutations
JLuc

Le 12/11/2015 11:35, Patrick a écrit :
Bonjour,

"c" devrait donner "1" non ? la 4e ligen en colonne A est un C et en
face il y a un 1...


Le 12/11/2015 09:19, Jean-Luc CAPEL a écrit :
Merci pour ta réponse Isabelle, mais ta solution ne correspond pas non
plus au calcul recherché.
Ta proposition compare les 2 plages A1:A5 et C1:C5.
Alors que je veux chercher pour chaque éléments de la plage A1:A5 sa
valeur contenu dans le tableau de correspondance C1:D5

Dans mon exemple, cette "somme" sur la colonne 1 dois donner :
A -> 0
B -> 1
A -> 0
C -> 0
E -> 0
___
càd 1

Le 12/11/2015 05:03, isabelle a écrit :
bonjour Jean-Luc,

=SOMMEPROD((A1:A5Á:C5)*(D1:D5))

isabelle





---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
https://www.avast.com/antivirus





---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
https://www.avast.com/antivirus





---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Avatar
Jacquouille
Hello

je sens qu'on est parti pour faire un tour.
Ne pourras-tu pas mettre ton fichier (ou fichier exemple) sur CJOINT.COM et
publié l'adresse ici.
Le fichier comprendra une réponse exemple, afin que tout un chacun sache ce
que tu attends exactement.
Bonne aprem.
jacques.



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jean-Luc CAPEL" a écrit dans le message de groupe de discussion :


Merci de te préoccuper de mon probleme qui pour l'instant n'aboutit pas
Non c'est bien 0 pour C
J'ai tiré au hasard 5 lettres A,B,A,C,E prise parmi les 5 1ère lettres
de l'alphabet

pour le 1 er tirage : A, cette lettre a bien dans le tableau des
valeurs, la valeur 0
pour le 2ème tirage : B, cette lettre a bien dans le tableau des
valeurs, la valeur 1
pour le 3ème tirage : A, cette lettre a bien dans le tableau des
valeurs, la valeur 0
pour le 4ème tirage : C, cette lettre a bien dans le tableau des
valeurs, la valeur 0
pour le 5ème tirage : E, cette lettre a bien dans le tableau des
valeurs, la valeur 0
(je me suis arreté à 5 tirages pour l'exemple mais j'aurais pu faire
plus ou moins)

Si je fais la somme de toutes ces valeurs de correspondances, j'obtiens
bien ds cet exemple la valeur de 1

QQ'un à t'il une idée pour répondre à ce probleme par une formule
matricielle du type
{=SOMME(INDEX(D1:D5;EQUIV(A1:A5;C1:C5;0)))}
il me manque qq chose car cela ne retourne que la 1ère valeur de la 1ère
lettre
Autre chose de curieux
Si j'évalue ma formule par F9
la fct EQUIV me renvoie bien une matrice 1 sur 5 = {1;2;1;3;5}
par contre
le fct INDEX me renvoie #VALEUR

Ai je choisi les bonnes fcts pour répondre à ce prblm

Merci de vos lumière
je suis complétement sec la dessus
Salutations
JLuc

Le 12/11/2015 11:35, Patrick a écrit :
Bonjour,

"c" devrait donner "1" non ? la 4e ligen en colonne A est un C et en
face il y a un 1...


Le 12/11/2015 09:19, Jean-Luc CAPEL a écrit :
Merci pour ta réponse Isabelle, mais ta solution ne correspond pas non
plus au calcul recherché.
Ta proposition compare les 2 plages A1:A5 et C1:C5.
Alors que je veux chercher pour chaque éléments de la plage A1:A5 sa
valeur contenu dans le tableau de correspondance C1:D5

Dans mon exemple, cette "somme" sur la colonne 1 dois donner :
A -> 0
B -> 1
A -> 0
C -> 0
E -> 0
___
càd 1

Le 12/11/2015 05:03, isabelle a écrit :
bonjour Jean-Luc,

=SOMMEPROD((A1:A5Á:C5)*(D1:D5))

isabelle





---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
https://www.avast.com/antivirus





---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
https://www.avast.com/antivirus





---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
https://www.avast.com/antivirus


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
Jean-Luc CAPEL
Merci pour votre aide
Voici le lien :
http://www.cjoint.com/c/EKmmfsIVTH0

A+
JLuc


---
L'absence de virus dans ce courrier électronique a été và ©rifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Avatar
Jacquouille
Hello
Dans ton exemple, 4 représente la somme des 1 et des 0 de la colonne B2:B8.
Si c'est cela, =somme(B2:B8).

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jean-Luc CAPEL" a écrit dans le message de groupe de discussion :


Merci pour votre aide
Voici le lien :
http://www.cjoint.com/c/EKmmfsIVTH0

A+
JLuc


---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
https://www.avast.com/antivirus


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
1 2 3