web-dev-qa-db-fra.com

Existe-t-il une formule Excel concise pour calculer (A1 * A6) + (B1 * B6) + (C1 * C6) ...?

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 fonction SUM devrait aider mais je ne sais pas comment l’utiliser.

46
rukuto

Vous recherchez la fonction SUMPRODUCT .

=SUMPRODUCT(A1:C1,A6:C6)

Ceci retournera la somme des produits des articles correspondants dans deux (ou plus) gammes.

 enter image description here

Comme vous pouvez le constater dans la documentation de Microsoft à laquelle je suis lié, les plages ne doivent pas être composées de lignes simples ni de colonnes simples (même si 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 identique à =A1*A6*A11+B1*B6*B11+C1*C6*C11.

111
Blackwood

La fonction SUM ne fonctionnera pas car elle ne fait qu'ajouter 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 que SUM

Il y a beaucoup de meilleures solutions. Une solution consiste à utiliser formule matricielle . Vous pouvez voir un exemple exact comme le vôtre là-bas:

Syntaxe de la formule de tableau

En général, les formules matricielles utilisent la syntaxe de formule standard. Ils commencent tous par un signe égal (=) et vous pouvez utiliser la plupart des fonctions Excel intégrées dans vos formules matricielles. La principale différence est que lorsque vous utilisez une formule matricielle, vous appuyez sur Ctrl+Shift+Enter pour entrer votre formule. Lorsque vous effectuez cette opération, Excel entoure votre formule de tableau avec des accolades. Si vous les saisissez manuellement, votre formule sera convertie en chaîne de texte et ne fonctionnera pas.

Les fonctions de tableau sont un moyen très efficace de créer une formule complexe. La formule du tableau =SUM(C2:C11*D2:D11) est la même que celle-ci:

=SUM(C2*D2,C3*D3,C4*D4,C5*D5,C6*D6,C7*D7,C8*D8,C9*D9,C10*D10,C11*D11).

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)

=SUM(A1:E1*A6:E6)

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

Pourquoi utiliser des formules matricielles?

Si vous avez de l'expérience dans l'utilisation de formules dans Excel, vous savez que vous pouvez effectuer des opérations assez sophistiquées. Par exemple, vous pouvez calculer le coût total d'un prêt sur un nombre d'années donné. Vous pouvez utiliser des formules matricielles pour effectuer des tâches complexes, telles que:

  • Comptez le nombre de caractères contenus dans une plage de cellules.

  • N'ajoutez que les nombres qui remplissent certaines conditions, telles que les valeurs les plus basses d'une plage ou les nombres situés entre une limite supérieure et une limite inférieure.

  • Somme chaque nième valeur dans une plage de valeurs.

Les formules Array offrent également ces avantages:

  • Consistance: Si vous cliquez sur l’une des cellules de E2 vers le bas, la même formule s’affiche. Cette cohérence peut aider à assurer une plus grande précision.

  • Sécurité: Vous ne pouvez pas écraser un composant d'une formule matricielle à plusieurs cellules. Par exemple, cliquez sur la cellule E3 et appuyez sur Supprimer. Vous devez soit sélectionner toute la plage de cellules (E2 à E11) et modifier la formule de l'ensemble du tableau, soit laisser le tableau tel quel. Par mesure de sécurité supplémentaire, vous devez appuyer sur Ctrl+Shift+Enter pour confirmer la modification de la formule.

  • Taille de fichier plus petite: Vous pouvez souvent utiliser une formule matricielle à la place de plusieurs formules intermédiaires. Par exemple, le classeur utilise une formule matricielle pour calculer les résultats de la colonne E. Si vous aviez utilisé des formules standard (telles que = C2 * D2, C3 * D3, C4 * D4…), vous auriez utilisé 11 formules différentes pour calculer les mêmes résultats.

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.

19
phuclv

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.

8
Ross Millikan

si vous mettez une liste de nombres en colonnes au lieu de lignes (disons 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

1
AjayC

S'il n'y a rien d'autre dans les lignes 1 et 6 que ce pour quoi vous voulez utiliser une SUMPRODUCT(), 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)

0
Chris Rogers