Je veux savoir comment donner une formule concise pour la formule longue suivante dans la feuille Excel:
= (A1*A6)+(B1*B6)+(C1*C6)...
Est-ce que j'utilise une fonction de somme ou y a-t-il une autre fonction pour cela? Je pense que l'utilisation du côlon avec la SUM
fonction devrait aider mais je ne sais pas comment l'utiliser.
Réponses:
Vous recherchez la fonction SOMMEPROD .
Ceci retournera la somme des produits des articles correspondants dans deux (ou plus) gammes.
Comme vous pouvez le constater dans la documentation Microsoft à laquelle je suis lié, les plages ne doivent pas nécessairement être composées de lignes ou de colonnes (bien qu'elles doivent avoir les mêmes dimensions).
SOMMEPROD peut multiplier des valeurs allant jusqu'à 255 plages différentes. Par exemple,
=SUMPRODUCT(A1:C1,A6:C6,A11:C11)
est le même que=A1*A6*A11+B1*B6*B11+C1*C6*C11
.la source
SUM
fonction ne fonctionnera pas car il ajoute simplement les éléments. Vous devez multiplier les valeurs avant de passer à SUM comme=SUM(A1*A6, B1*B6, C1*C6, D1*D6, E1*E6)
Bien sûr, vous pouvez également utiliser
=A1*A6 + B1*B6 + C1*C6 + D1*D6 + E1*E6
ce qui donne pratiquement le même effort de frappe queSUM
Il y a beaucoup de meilleures solutions. Une solution consiste à utiliser une formule matricielle . Vous pouvez voir un exemple exact comme le vôtre là-bas:
Pour utiliser une formule matricielle dans votre cas, vous pouvez taper (vous devez bien entendu modifier le dernier élément du tableau en conséquence)
puis appuyez sur Ctrl+ Shift+Enter
La formule de tableau est un outil très puissant. Cependant, utilisez-le avec précaution. Chaque fois que vous devez le modifier, vous ne devez pas oublier d'appuyer sur Ctrl+ Shift+Enter
C'est aussi plus rapide puisque le modèle d'accès est déjà connu. Maintenant, au lieu de faire 11 calculs différents séparément, il peut être vectorisé et effectué en parallèle, en utilisant plusieurs cœurs et une unité SIMD dans la CPU.
la source
MOD
) provoquerontSUMPRODUCT
une rupture, et vous devrez alors la remplacer par une formule Array. Sans parler de toutes les versions d'Office publiées, les formules deMAXIFS
tableaux utilisées en tant que fonctions officielles (par exemple, en 365) sont généralement utilisées. Si votre formule de tableau est lente, sobre et cassante, vous devez probablement optimiser votre code. Et, bien entendu, PowerQuery étant une extension supplémentaire, de nombreuses entreprises ne l'incluront pas (pour diverses raisons) dans leur package de création d'entreprise, ce qui en fait une solution de qualité inférieure à des fins commerciales distribuées.Une autre approche consiste à insérer dans A7 l'expression = A1 * A6 et à la copier autant que vous le souhaitez, puis à additionner la ligne $ 7 $ pour obtenir la réponse finale. Il ne le fait pas dans une cellule comme vous le souhaitez, mais il est parfois pratique de disposer des produits intermédiaires. J'ai utilisé les deux versions. Celui-ci me semble plus excellent, mais vos goûts peuvent différer.
la source
si vous mettez une liste de nombres en colonnes au lieu de lignes (dites deux colonnes A et B), vous pouvez utiliser la fonction = Sumproduct (A: A, B: B) comme ça. cela vous donnera le produit d'autant de nombres qu'il y en a dans les colonnes A et B.
Vous pouvez utiliser autant de colonnes dans la fonction Sumproduct que nécessaire
la source
S'il n'y a rien d'autre dans les lignes 1 et 6 que ce que vous voulez avoir comme
SUMPRODUCT()
pour, vous pouvez utiliser l'idée mentionnée dans ce commentaire . Dans votre cas, comme indiqué dans votre question, vous utiliseriez=SUMPRODUCT(1:1,6:6)
la source
SUMPRODUCT(1:1,2:2)
et j'ai fourni une réponse sur la base de ce commentaire, expliquant comment il peut être utilisé en fonction de la question initiale et quelles en seraient les limites.