【エクセル関数】掛け算の基礎と応用
エクセルでの掛け算の基本と、INDIRECT × ADDRESS 関数を合わせた応用 を紹介します
基礎と応用を網羅的に学べます。
エクセルでの掛け算は3種類
エクセルでの掛け算には主に以下の3種類の方法があります
- 乗算演算子
*
PRODUCT
関数SUMPRODUCT
関数
サンプルを例に、それぞれの方法について表で解説します
サンプル
方法 | 説明 | 使用例 | 結果 | * で表現 |
---|---|---|---|---|
* 乗算演算子 | 最も基本的な掛け算。セルまたは値を直接指定して掛ける。 | =B2*C2 | 10000 | =B2*C2 |
PRODUCT 関数 | 複数の数値やセル範囲を掛け合わせる。引数が複数指定可能。 | =PRODUCT(B2, C2) | 10000 | =B2*C2 |
SUMPRODUCT 関数 | 複数の配列(範囲)の対応する要素同士を掛け合わせた後、その結果を合計する。 | =SUMPRODUCT(B2:B3, C2:C3) | 240000 | (B2*C2)+(B3*C3) |
*
とPRODUCT
は基本的に同じ結果を出力しますが、使い方によってはPRODUCT
の方が柔軟です
単一の掛け算ではどちらを使っても同じですが、PRODUCT
は複数の値を一度に処理できるため複雑な計算式を簡潔に書くことができます
SUMPRODUCT
は複数の配列(範囲)の対応する要素を掛け合わせてその結果を合計する特殊な機能を持っています
最大の特徴は、複数の配列間での計算が可能であることです
上の表にある「*
で表現」は、SUMPRODUCT
の働きを*
と+
を使って同じ結果を得るための一例です
広範囲の配列や複数の配列を扱う場合はSUMPRODUCT
を使用した方が、直感的で見やすくエラーを減らせます
PRODUCT
関数は、いくつかの数字を全部かけたいときに使います
SUMPRODUCT
関数は、2つのリストがあって、それぞれの対応する項目をかけ合わせてから、それらの合計を出したいときに使います
シートを超えて掛け算(INDIRECT
×ADDRESS
)
シートを横断して掛け算を行う際にINDIRECT
とADDRESS
を活用することで、セル参照先を動的に指定する事ができます
応用編として紹介します
具体的に、以下のような状況で優位性が発揮されます
- 柔軟性:
ADDRESS
関数で生成されたアドレスをINDIRECT
関数に渡すことで、セル参照を柔軟に変更できます。これにより、複雑なデータ構造の中から必要なデータを動的に抽出することが可能になります - 自動更新が不要:特定の条件に基づいてセルアドレスを動的に生成できるため、シートの構造が変更されたとしても、参照先のセルアドレスを手動で更新する必要がありません
- シートを跨いだ参照:
INDIRECT
関数を使用することで、異なるシートやワークブックにあるセルを参照することができます。ADDRESS
関数と組み合わせることで、これらの参照を動的に生成し、柔軟にデータを取り扱うことが可能です
INDIRECT
関数とADDRESS
関数 の活用テクニックは こちら の記事で紹介しています
INDIRECT を使った掛け算
INDIRECT
関数を使うと、文字列で指定したセル参照から実際のセルの値を取得できます
これを使って、異なるシートのデータを参照し掛け算を行います。
具体例:
「売上」シートのA2セルに商品Aの単価が、別の「在庫」シートのB2セルに商品Aの在庫数が記載されているとします
以下で「売上」シートの商品Aの単価と「在庫」シートの商品Aの在庫数を掛け合わせた結果が得られます
=INDIRECT("売上!B2") * INDIRECT("在庫!B2")
INDIRECT × ADDRESS を使った掛け算
INDIRECT
関数とADDRESS
関数を組み合わせることで、さらに高度な掛け算が可能になります
ADDRESS
関数は、セルの行と列の番号からセルのアドレスを文字列として返します
これをINDIRECT
関数に渡すことで、動的にセルの位置を指定してその値を取得できます
具体例:
「売上」シートのA2セルに商品Aの単価が、別の「在庫」シートのB2セルに商品Aの在庫数が記載されているとします
以下で「売上」シートの商品Aの単価と「在庫」シートの商品Aの在庫数を掛け合わせた結果が得られます
=INDIRECT("売上!" & ADDRESS(2, 2)) * INDIRECT("在庫!" & ADDRESS(2, 2))
ADDRESS(2, 2)
が”B2″というセルのアドレスを返します
INDIRECT
を使って「売上!B2」と「在庫!B2」のセルの値を取得し、これらを掛け合わせています
セルの位置をプログラム的に指定し、異なるシートにあるデータを柔軟に参照することが可能になります