Formule matricielle

Résolu
Isa__ Messages postés 59 Statut Membre -  
Isa__ Messages postés 59 Statut Membre -
Bonjour,
Je veux calculer la somme des cellules de la plage E1 à E13 si en colonne F correspondante on a divers et en colonne D correspondante on a 11.
J'ai fait la formule maticielle suivante :

{=SOMME(SI(ET(F1:F13="divers";D1:D13=11);E1:E13))}

mais malheureusement ça ne fonctionne pas.
C'était pourtant bien joli.

Pouvez vous m'aider s'il vous plait ?
Je m'arrache les cheveux, pas moyen de trouver ou est le problème...
Merci d'avance

Isa


A voir également:

7 réponses

g Messages postés 1285 Statut Membre 577
 
Bonjour,

Tu devrais plutôt utiliser la fonction SOMMEPROD comme ceci:

=SOMMEPROD((F1:F13="divers")*(G1:G13=G5)*(E1:E13))

Bonne soirée.
0
m@rina Messages postés 26512 Date d'inscription   Statut Contributeur Dernière intervention   11 490
 
Bonsoir,

Juste à titre indicatif, car la fonction SOMMEPROD est bien plus pratique, la formule matricielle aurait dû être ainsi :

{=SOMME(SI(F1:F13="divers";SI(G1:G13=G5;E1:E13;0);0))}

ou plus simplement en se rapprochant du SOMMEPROD :

{=SOMME((F1:F13="divers")*(G1:G13=G5)*(E1:E13))}

m@rina
0
Isa__ Messages postés 59 Statut Membre 2
 
Merci à tous les deux, ca fonctionne en effet.

Mais pas si les plages sont des plages nommées ou des colonnes entières. Est ce normal ?

Merci de vos réponses


Isa
0
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 442
 
Bonjour isa
petite info
je ne sais pas pour la matricielle,mais en ce qui concerne SOMMEPROD, elle fonctionne bien avec des plages nommées mais pas avec des colonnes complètes (ne demandez pas pourquoi!) et bien entendu elle ne doit pas fonctionner non plus si les plages nommées sont des colonne complètes
Crdlmnt
0
g Messages postés 1285 Statut Membre 577
 
Bonjour,

Je confirme les propos de Vaucluse en y ajoutant qu'à ma connaissance
- la plage doit être délimitée
- chaque colonne doit être de même longueur.

Bonne journée.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
m@rina Messages postés 26512 Date d'inscription   Statut Contributeur Dernière intervention   11 490
 
Bonjour,

Et pour ajouter mon grain de sel, ce n'est pas conseillé d'utiliser des colonnes entières qui ne feront qu'augmenter le temps de calcul, et la taille du fichier.

Un fichier 2003 fait environ 65000 lignes, un fichier 2010 en fait plus d'un million, un fichier 2010 64 bits à une longueur pratiquement infinie !
On a quand même rarement des tableaux aussi longs !

Si c'est un problème de plage qui risque de s'agrandir, il faut utiliser des noms avec la fonction Liste (2003), ou la fonction Transformer en tableau (v2007/2010).

m@rina
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 765
 
Bonjour,
Egalement, pour définir des plages variables, je vous propose cette méthode :
- Insertion/Nom/Définir
- Nommer les trois plages :
Noms dans le classeur : NOMBRES fait référence à =DECALER(Feuil1!$D$1;;;NBVAL(Feuil1!D:D);)
Noms dans le classeur : ADDITION fait référence à =DECALER(Feuil1!$E$1;;;NBVAL(Feuil1!E:E);)
Noms dans le classeur : DIVERS fait référence à =DECALER(Feuil1!$F$1;;;NBVAL(Feuil1!F:F);)

Ainsi votre formule =SOMMEPROD() devient :
=SOMMEPROD((NOMBRES=11)*(DIVERS="divers")*ADDITION)
et fonctionne si l'on ajoute des données à la suite dans les colonnes D, E et F. Veuillez toutefois à ce qu'il y ait le même nombre de lignes remplies dans ces trois colonnes...

Cordialement,
-- Il n'y a rien de tel qu'une question idiote, seulement une réponse idiote. A.Einstein --
0
Isa__ Messages postés 59 Statut Membre 2
 
Alors, là, les gars les filles, bravo, vous êtes trop forts...
Tout plein de réponses super géniales et efficaces...

Merci à tous et toutes de prendre de votre temps pour répondre de façon si magistrale.

Je n'ai qu'un mot à dire : "Respect..."
0