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

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
Re2

Dans ton fichier exemple, en B2, tu inscris =RECHERCHEV(A2;D$2:E$6;2;VRAI)
Ensuite, en B10: =somme(B2:B8).


Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jacquouille" a écrit dans le message de groupe de discussion :
n2201d$i8c$

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


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
Patrick
Sorry,
je ne comprends pas le problème (et je ne suis pas capable de pondre la
bonne formule), mais 2 remarques:

1- tu ne sais pas donner un titre à tes colonnes ou bien mettre une
partie de tes données réelles dans un tableau
2- tu ne sais pas déposer ton fichier (anonymisé) sur onedrive ou
dropbox ? les gens pourront le charger et travailler dessus :)


Le 12/11/2015 12:30, Jean-Luc CAPEL a écrit :
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.
https://www.avast.com/antivirus
Avatar
Patrick
Ou alors...
avec ta table de correspondance:

en F2
=INDEX($E$2:$E$6;EQUIV(A2;$D$2:$D$6;0))
et puis la somme de la colonne F :)

si bien compris :)

P.

Le 12/11/2015 13:07, Jean-Luc CAPEL a écrit :
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.
https://www.avast.com/antivirus
Avatar
Jacquouille
Heu, pour info, à 13h17, le fichier est sous CJOINT....

Jacques

" Le vin est au repas ce que le parfum est à la femme."
"Patrick" a écrit dans le message de groupe de discussion :
n2218l$kv9$


Sorry,
je ne comprends pas le problème (et je ne suis pas capable de pondre la
bonne formule), mais 2 remarques:

1- tu ne sais pas donner un titre à tes colonnes ou bien mettre une
partie de tes données réelles dans un tableau
2- tu ne sais pas déposer ton fichier (anonymisé) sur onedrive ou
dropbox ? les gens pourront le charger et travailler dessus :)


Le 12/11/2015 12:30, Jean-Luc CAPEL a écrit :
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.
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
Jacky
Bonjour Jean-Luc CAPEL,

=SOMMEPROD((A2:A8="B")+(A2:A8="C")+(A2:A8="E"))

--
Salutations
JJ
Avatar
Jean-Luc CAPEL
Merci pour toutes ses réponses Jacques
Je vais paraitre un peu embêtant mais je souhaitais ne pas rajouter de
ligne ou de colonne par des calculs intermédiaires.
cette exemple est une petite partie de ce que j'ai en réalité dans un
classeur de planning.
c'est pour cela que je cherche une formule matricielle qui puisse me
faire le calcul depuis une seule cellule.

---
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
Sauf erreur de ma part, je viens de m'apercevoir que ma formule
fonctionne avec Calc d'OpenOffice !?


---
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
Ta solution ne répond pas à mon probleme
La formule doit répondre quelquesoit les lettres saisies dans la 1ere
colonne

Le 12/11/2015 14:05, Jacky a écrit :
Bonjour Jean-Luc CAPEL,

=SOMMEPROD((A2:A8="B")+(A2:A8="C")+(A2:A8="E"))

--
Salutations
JJ




---
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
Ta solution ne répond pas à mon probleme
La formule doit répondre quelquesoit les lettres saisies dans la 1ere
colonne

Le 12/11/2015 14:05, Jacky a écrit :
Bonjour Jean-Luc CAPEL,

=SOMMEPROD((A2:A8="B")+(A2:A8="C")+(A2:A8="E"))

--
Salutations
JJ




---
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
Ta solution ne répond pas à mon problème
La formule doit répondre quelque soit les lettres saisies dans la 1ere
colonne
Le tableau de correspondance des valeurs des lettres lui ne change pas

Le 12/11/2015 14:05, Jacky a écrit :
Bonjour Jean-Luc CAPEL,

=SOMMEPROD((A2:A8="B")+(A2:A8="C")+(A2:A8="E"))

--
Salutations
JJ




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