エクセルのVLOOKUP関数とSUM関数を組み合わせることで、データの検索や合計を行うことができますが、
VLOOKUP関数は値を探すだけ関数なので、それ単体で合計値を求めることはできません、ですのでVLOOKUP関数をどうしても使用したい人はSUM関数を絡め、それ以外の人はSUMIF関数やSUMIFS関数を使用して複数条件位合った合計値を求める方が良いのではと思っています。
この記事では、どのように合計値を計算させるのかを初心者の方でもわかりやすいように、実際のコード例もたくさん紹介しながら説明していきますね。
それでは行ってみよう!
エクセルVLOOKUPとSUM関数の基本
VLOOKUP関数の基本的な使い方
VLOOKUP(Vertical Lookup)は、指定した範囲内から検索値に一致するデータを垂直方向に探し、その列の他のデータを返す関数です。基本的な構文は以下の通りです。
=VLOOKUP(検索値, 範囲, 列番号, [検索方法])
- 検索値:探したい値
- 範囲:検索するデータの範囲
- 列番号:返すデータの列番号
- 検索方法:TRUE(近似一致)またはFALSE(完全一致)
SUM関数の基本的な使い方
SUM関数は、指定した範囲の数値を合計する関数です。基本的な構文は以下の通りです。
=SUM(範囲)
- 範囲:合計したい数値の範囲
VLOOKUPとSUM関数を組み合わせて合計を求める方法
VLOOKUPとSUM関数を組み合わせることで、特定の条件に合致するデータの合計を求めることができます。ここでは、基本的な例を紹介します。
例1:基本的なVLOOKUPとSUMの組み合わせ
次のような売上データがあるとします。
| 行/列 | A | B | C | D |
|---|---|---|---|---|
| 1 | 商品コード | 商品名 | 価格 | 売上数 |
| 2 | A001 | りんご | 100円 | 20 |
| 3 | A002 | バナナ | 150円 | 30 |
| 4 | A003 | オレンジ | 120円 | 25 |
このデータを基に、商品コード「A001」の売上合計を求める場合は、次のようにします。
=SUM(VLOOKUP("A001", A2:D4, 4, FALSE))
この式は、商品コード「A001」の売上数を合計します。結果は「20」となります。
例2:基本的なVLOOKUPとSUMの組み合わせ
- データの準備: まず、データが整理されていることを確認します。例えば、商品の売上データがあり、各商品に対応する売上額を合計したい場合、以下のようなデータがあるとします:cssコードをコピーする
A列:商品名 B列:売上額 - VLOOKUP関数を使用して条件を満たすデータを検索: VLOOKUP関数を使用して、特定の商品名に一致する売上額を検索します。例えば、商品名「商品A」の売上額を検索するには、次のようにします:phpコードをコピーする
=VLOOKUP("商品A", A:B, 2, FALSE) - SUM関数で合計値を計算: 上記のVLOOKUP関数を複数回使用し、SUM関数で合計します。例えば、複数の商品に対応する売上額の合計を求めるには、次のようにします:lessコードをコピーする
=SUM(VLOOKUP("商品A", A:B, 2, FALSE), VLOOKUP("商品B", A:B, 2, FALSE))
実際の例
例えば、次のようなデータがあるとします:
| 行/列 | A | B |
|---|---|---|
| 1 | 商品名 | 売上額 |
| 2 | 商品A | 100 |
| 3 | 商品B | 200 |
| 4 | 商品C | 300 |
商品Aと商品Bの売上額の合計を求めるには、次のようにします:
=SUM(VLOOKUP("商品A", A:B, 2, FALSE), VLOOKUP("商品B", A:B, 2, FALSE))
この式は、商品Aの売上額100と商品Bの売上額200を検索し、それらを合計して300を返します。
しかし、気をつけなければならないのはVLOOKUP関数とSUM関数だけでは、特定の商品が複数回出現する場合の合計を直接求めることはできません。
例えば
| 行/列 | A | B |
|---|---|---|
| 1 | 商品名 | 売上額 |
| 2 | 商品A | 100 |
| 3 | 商品B | 200 |
| 4 | 商品C | 300 |
| 5 | 商品A | 100 |
| 6 | 商品B | 200 |
このようなデータの場合、気持ち的には600になって欲しいところですが、
VLOOKUPとSUM関数を組み合わせて計算させると、最初に一致した値のみを返すVLOOKUPの性質上、
結果は300になります。
このようなデータを計算させる場合はSUMIF関数を使うと良いですよ!
SUMIF関数を使った複数条件での合計
次のような売上データがあるとします。
| 行/列 | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | 商品コード | 商品名 | 価格 | 売上数 | 地域 |
| 2 | A001 | りんご | 100円 | 20 | 東日本 |
| 3 | A002 | バナナ | 150円 | 30 | 西日本 |
| 4 | A003 | オレンジ | 120円 | 25 | 東日本 |
| 5 | A001 | りんご | 100円 | 10 | 西日本 |
このデータを基に、東日本の「りんご」の売上合計を求める場合は、次のようにします。
=SUMIF(B2:B5, "りんご", D2:D5)
結果は「30」となります。
この式は、「りんご」の売上数を合計しますが、地域条件を追加する場合は、次のようにします。
=SUMIFS(D2:D5, B2:B5, "りんご", E2:E5, "東日本")
この式は、東日本の「りんご」の売上数を合計します。結果は「20」となります。
SUMPRODUCT関数を使ったVLOOKUPの応用
SUMPRODUCT関数を使うことで、より高度な計算が可能になります。SUMPRODUCT関数は、指定した範囲の積を合計する関数です。
例3:SUMPRODUCT関数を使った応用
次のような売上データがあるとします。
| 行/列 | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | 商品コード | 商品名 | 価格 | 売上数 | 地域 |
| 2 | A001 | りんご | 100円 | 20 | 東日本 |
| 3 | A002 | バナナ | 150円 | 30 | 西日本 |
| 4 | A003 | オレンジ | 120円 | 25 | 東日本 |
| 5 | A001 | りんご | 100円 | 10 | 西日本 |
このデータを基に、東日本の「りんご」の売上合計を求める場合は、次のようにします。
=SUMPRODUCT((B2:B5="りんご")*(E2:E5="東日本")*(D2:D5))
この式は、東日本の「りんご」の売上数を合計します。結果は「20」となります。
別シート・別ブックでのVLOOKUPと合計の計算
VLOOKUP関数とSUM関数を使って、別シートや別ブックからデータを合計する方法も紹介します。
例4:別シートからのデータ検索と合計
例えば、「Sheet1」に以下の表があるとします。
| 行/列 | A | B | C | D |
|---|---|---|---|---|
| 1 | 商品コード | 商品名 | 価格 | 売上数 |
| 2 | A001 | りんご | 100円 | 20 |
| 3 | A002 | バナナ | 150円 | 30 |
| 4 | A003 | オレンジ | 120円 | 25 |
「Sheet2」で商品コードを入力して商品名と売上数を取得し、その合計を求める場合は次のようにします。
=SUM(VLOOKUP("A001", Sheet1!A2:D4, 4, FALSE))
この式は、「Sheet1」にある商品コード「A001」の売上数を合計します。結果は「20」となります。
例5:別ブックからのデータ検索と合計
別のエクセルファイルからデータを合計する場合は、次のようにします。
=SUM(VLOOKUP("A001", '[別ブック.xlsx]Sheet1'!A2:D4, 4, FALSE))
この式は、別のブックにある商品コード「A001」の売上数を合計します。
まとめとよくある質問
重要なポイントのまとめ
- VLOOKUP関数とSUM関数を組み合わせることで、データの検索と合計を簡単に行うことができます。
- SUMIF関数やSUMPRODUCT関数を使うことで、複数条件や高度な計算も可能です。
- 別シートや別ブックからのデータを合計する方法も紹介しました。
よくある質問
Q1: VLOOKUP関数で複数の列を合計することはできますか?
- A: 直接はできませんが、SUMPRODUCT関数を使うことで複数の列を合計することができます。
Q2: VLOOKUP関数でテキストを検索する場合、検索方法はどう設定しますか?
- A: 検索方法はFALSE(完全一致)を設定することをお勧めします。これにより、正確なテキスト検索が行えます。
Q3: VLOOKUP関数でエラーが発生した場合の対処方法は?
- A: IFERROR関数を使ってエラーを処理することができます。例えば、
=IFERROR(VLOOKUP("A001", A2:D4, 2, FALSE), "データなし")とすることで、エラーが発生した場合に「データなし」と表示されます。


コメント