Excelシートで次の長い式に簡潔な式を与える方法を知りたい:
= (A1*A6)+(B1*B6)+(C1*C6)...
sum関数を使用しますか、またはこれに別の関数がありますか?SUM
関数でコロンを使用すると役立つと思いますが、使用方法がわかりません。
Excelシートで次の長い式に簡潔な式を与える方法を知りたい:
= (A1*A6)+(B1*B6)+(C1*C6)...
sum関数を使用しますか、またはこれに別の関数がありますか?SUM
関数でコロンを使用すると役立つと思いますが、使用方法がわかりません。
回答:
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
です。
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つの方法は、配列数式を使用することです。そこにあなたのような正確な例を見ることができます:
配列数式の構文
一般に、配列数式は標準の数式構文を使用します。それらはすべて等号(=)で始まり、配列数式でほとんどの組み込み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を押す必要があります。
ファイルサイズを小さくする:多くの場合、複数の中間式の代わりに単一の配列式を使用できます。たとえば、ワークブックは1つの配列式を使用して列Eの結果を計算します。標準の式(= C2 * D2、C3 * D3、C4 * D4…など)を使用した場合、11の異なる式を使用して計算したことになります。同じ結果。
また、アクセスパターンが既知であるため、高速です。11種類の計算を個別に行う代わりに、CPUの複数のコアとSIMDユニットを利用して、ベクトル化して並列に実行できます
MOD
原因になります)SUMPRODUCT
破るために、その後、あなたは配列数式に置き換えることを持っています。言うまでもなく、リリースされたすべてのバージョンのOfficeには、公式関数として追加された一般的に使用されている配列数式(MAXIFS
365など)があります。そして、もちろん-PowerQueryは追加のアドイン拡張機能であるため、多くの企業は(さまざまな理由で)コーポレートビルドパッケージに含めず、分散ビジネス目的の劣ったソリューションにしています。
行1および6に、SUMPRODUCT()
目的のもの以外に何もない場合は、このコメントで言及されているアイデアを使用できます。あなたの場合、質問で概説されているように、あなたは=SUMPRODUCT(1:1,6:6)
SUMPRODUCT(1:1,2:2)
そのコメントに基づいて回答を提供し、元の質問に基づいてどのように使用できるか、そしてそれに対する制限は何かを詳しく説明しました。