conditions dans matrices

P

papa6

Guest
Bonjour,

(J'ai bien lu Monique, mais j'ai pas trouvé la réponse à ma question.)

J'ai 3 colonnes, la date en A, l'article en B, et une valeur en C.
Il peut y avoir des articles en doublon: à 2 dates différentes, un même article peut avoir 2 prix différents.

J'ai besoin de la formule simplifiée qui me donne le prix marqué en C pour une date et un article donné.

La solution, trop compliquée, que j'ai pour l'instant est :

{=SOMMEPROD(SI((A1:A9="01/01/03")*(A1:A9="banane");A1:A9))}

Ca marche parce qu'il n'y a qu'une valeur, alors on peut l'additionner toute seule ;-))

J'ai essayé, et ça ne marche pas:
{=SI((A1:A9="01/01/03")*(A1:A9="banane");A1:A9)}

{=(A1:A9="01/01/03")*(A1:A9="banane")*(A1:A9)}

Merci à vous
Papa6
 
S

Serge

Guest
Bonjour papa6,

Ai-je bien compris ?
Je suppose que les données apparaissent
sur la plage A2:C7 :

Date Article Prix
01/01/03 banane 5
02/01/03 pomme 4
03/01/03 banane 3
04/01/03 orange 6
05/01/03 pomme 5
06/01/03 carotte 3

En E1, j'entre une date
En E2, j'entre un article
En E3, j'entre la formule :
=SOMMEPROD((A2:A7=E1)*(B2:B7=E2)*(C2:C7))
(à valider normalement, pas d'entrée matricielle)

03/01/03
banane
3

Qu'en penses-tu ?

Serge
 
M

Monique

Guest
Bonjour,

=SOMMEPROD((A1:A9=DATEVAL("01/01/03"))*(B1:B9="banane");C1:C9)

Plus pratique :
Date en E1 et article en F1 (plus pratique pour modifier par la suite)
=SOMMEPROD((A2:A10=E1)*(B2:B10=F1);C2:C10)
à saisir de façon classique et non par ctrl, maj et entrée

Si tu veux vraiment des SI et que si tu veux valider en matriciel :
=SOMMEPROD(SI(A2:A10=E1;SI(B2:B10=F1;C2:C10)))
=SOMME(SI((A2:A10=E1)*(B2:B10=F1);C2:C10))

Si tu ne veux pas de SI, mais que tu veux valider en matriciel :
=SOMME((A2:A10=E1)*(B2:B10=F1)*C2:C10)

Saisie en matriciel, la formule =(A2:A10=E1)*(B2:B10=F1) donne 0 ou 1, c'ad FAUX ou VRAI. Si le résultat est 1, la somme des valeurs correspondantes en C2:C10 se fait.
 
P

papa6

Guest
Merci Charlie et Serge,
mais c'était pour éviter le SOMMEPROD

L'exemple de Serge était bon, mais si c'est ça la réponse, c'est qu'il n'y en a pas d'autre.

Je pensais pourtant pouvoir trouver une solution en combinant des index-equiv

Mais depuis que je cherche, si ça existait, j'aurais trouvé...

bonne fin de dimanche !
 
P

papa6

Guest
Re-

je viens de voir que je m'étais croisé avec la réponse de Monique, mais quand je disais "merci" et "c'était pour éviter le SOMMEPROD", ce n'était pas parce que j'avais pas apprécié ta réponse, mais parce que je ne l'avais pas vue.

Donc merci à Monique aussi, même d'une façon générale à vous tous pour tous les commentaires sur le forum, car c'est parce qu'il reste vos écrits que nous les ignares pouvons apprendre en les retrouvant (google par ex.)

Pour conclure, la formule de SOMMEPROD est finalement pratique en cas d'oubli de validation spéciale.

Cependant, les champs doivent être délimités (A2:A10 par ex.), alors que souvent ce n'est pas le cas. Donc ma proposition finale:

=SOMMEPROD((DECALER(A2;0;0;NBVAL(A:A);1)=E1)*((DECALER(B2;0;0;NBVAL(B:B);1)=F1);(DECALER(C2;0;0;NBVAL(C:C);1))

validation classique

(c'est peut-être lourd, mais c'est précis - à noter que NBVAL(A:A)=NBVAL(B:B)=NBVAL(C:C))

Merci à tous
Papa6
 

Discussions similaires

Réponses
20
Affichages
2 K

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
313 914
Messages
2 103 510
Membres
108 685
dernier inscrit
BAAK