web-dev-qa-db-ja.com

(A1 * A6)+(B1 * B6)+(C1 * C6)...を計算するための簡単なExcelの公式はありますか?

Excelシートで以下の長い式の簡潔な式を与える方法を知りたいです。

= (A1*A6)+(B1*B6)+(C1*C6)...

Sum関数を使うのですか、それとも別の関数がありますか?コロンをSUM関数と一緒に使うことは助けになると思いますが、使い方がわかりません。

46
rukuto

あなたは SUMPRODUCT 関数を探しています。

=SUMPRODUCT(A1:C1,A6:C6)

これは、2つ(またはそれ以上)の範囲の対応する項目の積の合計を返します。

enter image description here

私がリンクしたマイクロソフトのドキュメントからわかるように、範囲は単一行または単一列である必要はありません(ただし、範囲は同じである必要があります)。

SUMPRODUCTは、最大255までの異なる範囲の値を乗算できます。例えば=SUMPRODUCT(A1:C1,A6:C6,A11:C11)=A1*A6*A11+B1*B6*B11+C1*C6*C11と同じです。

111
Blackwood

SUM関数は要素を追加するだけなので機能しません。 =SUM(A1*A6, B1*B6, C1*C6, D1*D6, E1*E6)のようにSUMに渡す前に値を乗算する必要があります

もちろん=A1*A6 + B1*B6 + C1*C6 + D1*D6 + E1*E6を使用することもできます。これはSUMとほぼ同じ型付け作業になります。

より良い解決策はたくさんあります。一つの方法は 配列式 を使うことです。あなたはあそこにあなたのような正確な例を見ることができます。

配列式の構文

一般に、配列式は標準の式構文を使用します。これらはすべて等号(=)で始まり、組み込みのExcel関数のほとんどを配列式で使用できます。主な違いは、配列式を使用するときに押すことです。 Ctrl+Shift+Enter 式を入力します。これを行うと、Excelは配列数式を中かっこで囲みます。中かっこを手動で入力すると、数式はテキスト文字列に変換され、機能しません。

配列関数は複雑な式を構築するための本当に効率的な方法です。配列式=SUM(C2:C11*D2:D11)はこれと同じです。

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

あなたのケースで配列式を使うためにあなたはタイプすることができます(もちろんあなたはそれに応じて配列の最後の要素を変更する必要があります)

=SUM(A1:E1*A6:E6)

そしてを押す Ctrl+Shift+Enter


配列式は非常に強力なツールです。ただし、慎重に使用してください。編集する必要があるたびに、押すことを忘れないでください Ctrl+Shift+Enter

なぜ配列式を使うのですか?

Excelで数式を使用した経験がある場合は、かなり高度な操作を実行できることがわかります。たとえば、任意の年数にわたるローンの総コストを計算できます。配列式を使用して、次のような複雑な作業を実行できます。

  • セル範囲内に含まれている文字数を数えます。

  • 範囲内の最小値や上限と下限の間にある数値など、特定の条件を満たす数値のみを合計します。

  • 値の範囲内のすべてのn番目の値を合計します。

配列式には、次のような利点もあります。

  • 一貫性:E2からセルを下方向にクリックすると、同じ式が表示されます。その一貫性は、より高い精度を保証するのに役立ちます。

  • 安全性:マルチセル配列数式のコンポーネントを上書きすることはできません。たとえば、セルE3をクリックしてDeleteキーを押します。セルの範囲全体(E2からE11)を選択して配列全体の数式を変更するか、配列をそのままにする必要があります。追加の安全対策として、あなたが押す必要があります Ctrl+Shift+Enter 式への変更を確認します。

  • ファイルサイズが小さい場合:いくつかの中間式の代わりに単一の配列式を使用することができます。たとえば、ワークブックはE列の結果を計算するために1つの配列式を使用します。標準の式(= C2 * D2、C3 * D3、C4 * D4など)を使用した場合は、11個の異なる式を使用します。同じ結果。

アクセスパターンがすでにわかっているのでそれはまた速いです。 11個の異なる計算を別々に行う代わりに、CPU内の複数のコアとSIMDユニットを利用して、ベクトル化して並列に実行することができます。

19
phuclv

もう1つの方法は、A7に式= A1 * A6を入力して必要なだけコピーしてから、$ 7 $行を合計して最終的な答えを得ることです。あなたが望んでいるようにそれは1つのセルでそれをしません、しかし時々中間製品を持つことは便利です。両方のバージョンを使用しました。これは私にとってエクセルっぽさを感じますが、あなたの好みは異なるかもしれません。

8
Ross Millikan

もしあなたが行の代わりに列に数のリストを置くなら(2つの列AとBを言う)、あなたはそのように関数= Sumproduct(A:A、B:B)を使うことができます。それはあなたにAとBの列にあるのと同じくらい多くの数の積を与えるでしょう。

Sumproduct関数では、必要に応じていくつでも列を使用できます。

1
AjayC

1行目と6行目にSUMPRODUCT()を使いたい以外に何もなければ、このコメントで述べた という考えを使うことができます 。あなたの質問で概説したようにあなたのケースではあなたは=SUMPRODUCT(1:1,6:6)を使うでしょう

0
Chris Rogers