Excel シート内の次の長い数式に簡潔な数式を与える方法を知りたいです。
= (A1*A6)+(B1*B6)+(C1*C6)...
合計関数を使用すればよいのでしょうか、それとも別の関数があるのでしょうか? 関数にコロンを使用するとSUM
役立つと思いますが、使い方がわかりません。
答え1
あなたが探しているのはSUMPRODUCT関数。
=SUMPRODUCT(A1:C1,A6:C6)
これは、2 つ (またはそれ以上) の範囲の対応する項目の積の合計を返します。
リンクした Microsoft のドキュメントからわかるように、範囲は単一の行または単一の列である必要はありません (ただし、同じ次元である必要があります)。
SUMPRODUCT は、最大 255 の異なる範囲の値を乗算できます。たとえば、=SUMPRODUCT(A1:C1,A6:C6,A11:C11)
は と同じです=A1*A6*A11+B1*B6*B11+C1*C6*C11
。
答え2
SUM
関数は要素を加算するだけなので機能しません。値を掛け合わせる必要があります。前にSUMに渡すと=SUM(A1*A6, B1*B6, C1*C6, D1*D6, E1*E6)
もちろん、=A1*A6 + B1*B6 + C1*C6 + D1*D6 + E1*E6
これを使うこともできますが、これはほぼ同じ入力労力で済みます。SUM
より良い解決策はたくさんあります。そのうちの1つはすでにブラックウッドによって提案されています。別の方法としては、配列数式. Microsoft から、あなたの例とまったく同じ例を見ることができます。
配列数式の構文
一般に、配列数式では標準の数式構文が使用されます。配列数式はすべて等号 (=) で始まり、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
配列数式の考え方を一度理解すれば、他のほとんどの数式にも適用でき、配列数式の存在を忘れるほどです。SUMPRODUCT
アップデート:
新しいバージョンのExcelでは、多くの場合、配列数式が自動的に使用されます。
Office 365 の 2018 年 9 月の更新プログラム以降、複数の結果を返すことができる数式では、結果が自動的に下または横に隣接するセルに出力されます。この動作の変更には、いくつかの新しい動的配列関数も伴います。動的配列数式は、既存の関数を使用する場合でも、動的配列関数を使用する場合でも、1 つのセルに入力し、Enter キーを押して確定するだけで済みます。以前の従来の配列数式では、最初に出力範囲全体を選択し、次にCtrl+ Shift+で数式を確定する必要がありましたEnter。これらは一般に CSE 数式と呼ばれます。
配列数式は非常に強力なツールです。ただし、注意して使用してください。編集する必要があるときは、必ずCtrl+ Shift+を押すことを忘れないでください。Enter
配列数式を使用する理由は何ですか?
Excel で数式を使用した経験があれば、かなり高度な操作を実行できることをご存じでしょう。たとえば、任意の年数にわたるローンの合計コストを計算できます。配列数式を使用すると、次のような複雑なタスクを実行できます。
セル範囲に含まれる文字数を数えます。
範囲内の最小値や上限と下限の間にある数値など、特定の条件を満たす数値のみを合計します。
値の範囲内の n 番目の値を合計します。
配列数式には次のような利点もあります。
一貫性:E2 から下のセルをクリックすると、同じ数式が表示されます。この一貫性により、精度が向上します。
安全性:複数セル配列の数式のコンポーネントを上書きすることはできません。たとえば、セル E3 をクリックして Delete キーを押します。セル範囲全体 (E2 から E11) を選択して配列全体の数式を変更するか、配列をそのままにしておく必要があります。追加の安全対策として、数式の変更を確認するにはCtrl+ Shift+を押す必要がありますEnter。
ファイルサイズが小さい:多くの場合、複数の中間数式の代わりに 1 つの配列数式を使用できます。たとえば、ワークブックでは 1 つの配列数式を使用して列 E の結果を計算します。標準の数式 (=C2*D2、C3*D3、C4*D4 など) を使用していた場合、同じ結果を計算するために 11 個の異なる数式を使用したことになります。
アクセスパターンがすでにわかっているため、より高速です。11の異なる計算を別々に行う代わりに、CPUの複数のコアとSIMDユニットを利用してベクトル化して並列に実行できます。
答え3
別の方法としては、A7 に式 =A1*A6 を入力して、必要なところまで右にコピーし、行 $7$ を合計して最終的な答えを得るという方法があります。希望どおりに 1 つのセルで実行されませんが、中間結果があると便利な場合があります。私は両方のバージョンを使用しました。私には、こちらの方が Excel っぽいと感じますが、好みは人それぞれでしょう。
答え4
1行目と6行目に、目的のもの以外に何もない場合はSUMPRODUCT()
、次のアイデアを使用できます。このコメントで言及されているあなたの質問に概説されているように、あなたの場合は=SUMPRODUCT(1:1,6:6)