No.013
検索条件に一致するデータの合計を求める 《SUMIF》
2003/2007/2010/2013
条件に一致するデータの合計というのは、例えば取引先ごとの売上合計など、非常に使用頻度が高い計算です。
条件付きの合計値は、SUMIF関数(分類: 数学/三角)で求めることができます。
例えば今回、A2:A20に商品コード、B2:B20に売上高が入力されていて、商品の系列ごと(A、B、C)の売上高を計算する場合を考えます。
次のように、SUMIF関数を使用して求めます。
SUMIF関数1つ目の引数[範囲]は、条件を評価する範囲を指定(今回はA列)します。
2つめの引数[検索条件]には、合計するときの条件を指定します。(今回まず「商品コードがAから始まる」という条件)
3つ目の引数[合計範囲]は、条件に一致したデータに対応した合計を取る範囲(今回はB列)を指定します。
セルA2:A20の範囲で、Aから始まるデータに対応するB列の合計は、次の式となります。
=SUMIF(A2:A20,"A*",B2:B20)
「Aから始まる」という条件の設定は部分一致条件となりますので、ワイルドカードを使用します。
条件は文字列ですから、前後にダブルクォーテーションを付けますよ。
ワイルドカードの詳細は、下記の<ヘルプmemo>をご覧ください。
さて、今回セルE4で「A系列」の商品売上を求め、その下のセルも同様に「B系列」「C系列」と求めていきたいです。
そのときに、先の式の条件「"A*"」では、下に数式がコピーできません。
せっかくですから、セルD4からD6に入力されている「A、B、C」の値を利用すべきです。とすると、セル参照(D4)とワイルドカードをつなげた文字列が条件となります。
セル参照とワイルドカードをつなげるとき、要素をつなげるための記号、アンパサンド(&)を用いて、「D4&"*"」と指定します。
SUMIF関数を[関数の引数]ダイアログ ボックスで設定している場合は、各引数のボックス右に表示される内容にも注視してみてください。
そして、1つ目と3つ目の引数の範囲は番地を固定することを忘れないようにご注意ください。これ重要です。
あとは、数式をコピーしてできあがりです。
ヘルプmemo
<ワイルドカード>
ワイルドカードとは、部分一致条件において、任意な部分に当てられる文字列です。
ワイルドカードでよく使用されるのは、「*」アスタリスクと「?」疑問符です。
アスタリスクは0文字以上複数文字(全角半角問わず)、疑問符は1文字(全角半角問わず)で使用できます。
例えば、山田さんでも名前はそれぞれで、文字数も違います。そのような場合に「山田*」というように、任意となる部分にワイルドカードを指定します。
ワイルドカードの指定事例は以下のとおりです。
- Aから始まる …"A*"
- Aで終わる …"*A"
- Aを含む …"*A*"
- 2文字目がAで全体3文字 …"?A?"
- AとBを含む …"*A*B*"
- Aでない …"<>A"
- Aを含まない …"<>*A*"
また、以上以下大きい小さいといった条件設定は次のとおりです。
- 8より小さい…"<8"
- 8より大きい…">8"
- 8以下…"<=8"
- 8以上…">=8"
ヘルプmemo
<SUMIF関数 (数学/三角関数)>
指定された検索条件に一致するセルの値を合計します。
数式: =SUMIF(範囲, 検索条件 ,合計範囲)
引数:
範囲 …評価の対象となるセル範囲を指定
検索条件 …条件となる数値、式、文字列を指定
合計範囲 …計算の対象となるセル範囲を指定
ヒント:
合計範囲.を省略すると、範囲内で検索条件を満たすセルが合計されます。