ヘルプの森~Excel・Access・Office全般ヘルプデスクサイト

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でセルとワイルドカードの条件

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(範囲, 検索条件 ,合計範囲)
 引数:
  範囲 …評価の対象となるセル範囲を指定
  検索条件 …条件となる数値、式、文字列を指定
  合計範囲 …計算の対象となるセル範囲を指定
 ヒント:
   合計範囲.を省略すると、範囲内で検索条件を満たすセルが合計されます。

twitter hatena line pocket

関連ヘルプ

7桁で入力されている郵便番号のデータにハイフォンを挿入したい 《REPLACE》
左から(右から・途中から)決まった文字数の文字列を取り出す 《LEFT・RIGHT・MID》
余分なスペースを削除してスペースを全角または半角に揃える 《SUBSTITUTE・TRIM》
全角の英数字を半角にするには、またはその逆 《ASC・JIS》
数字文字列を数値にする(関数編) 《VALUE》
別々のセルに入っているデータを結合して(つなげて)表示する 《アンパサンド・CONCAT (CONCATENATE) 》
2つの日付の期間が何年かを求める 《DATEDIF》
セルに入力されている数値を時刻の表示にする 《TIME》
時刻の「8:30」を「8.5」と数値に変換する
循環参照を解決するために
条件を満たすセルの個数を数える 《COUNTIF》
フィルターで抽出されたデータの件数、合計をセルに表示したい 《SUBTOTAL》
負の小数値を合計したときに計算結果に誤差が生じる
カウントする関数が何をカウントするか 《COUNT・COUNTA・COUNTBLANK》
=のあとに+が表示された「=+」から始まる数式の意味とは
数式で参照しているセルを変更しても、結果が更新されない
セルに計算結果ではなく数式が表示されている
先頭のシングル クォーテーション、アポストロフィー(')を取るには(関数編) 《SUBSTITUTE》
10進数の数値を2進数と16進数に変換するには 《DEC2BIN・DEC2HEX》
月の日数、月末を求める 《EOMONTH》