【関数】1種類の条件に一致する数値を合計できる「SUMIF」の使い方
AさんAさん

商品別や日別などの条件で合計を集計したいのでSUMIFSで集計しようと思っていたのですが、会社のExcelブックが「.xls」だと使えないです・・・。
こうした場合、どの関数を使えば良いですかね?

森田森田

その場合は、関数のSUMIFを活用すると良いですよ!
では、SUMIFの使い方について解説していきますね。

Excelステップ講座

はじめに

この記事は関数の概要とSUMの使い方を把握していることが前提です。

参考記事

関数の概要とSUMの使い方については以下の記事をご参照ください。


Excel97-2003ブック(*.xls)で○○別の合計を集計したい場合は「SUMIF」が有効

実務では、データの特徴や傾向を把握するために、商品別や日別などの切り口で集計する機会は非常に多いもの。

こうした条件別の合計を集計する際、商品名や日付などの条件に一致するレコードの数値データのみで合計すれば良いですが、頑張ればSUMでも集計は可能です。

ただし、指定するセル数が多ければ多いほど、手作業は増え、誤ったセルを選択するリスクも増えてしまうため、この方法は非効率です。

こんな場合、関数のSUMIFSを使うことで、条件に一致するレコードのみを対象とし、瞬時に合計を集計することが可能となります。

ただし、この関数はExcel2007から登場した関数のため、Excel97-2003ブック(拡張子が「.xls」)だと使うことができません。

理想は対象ブックを「.xlsx」や「.xlsm」へ移行してSUMIFSを使うことですが、どうしても「.xls」のExcelブックで集計しないといけないのであれば、昔から存在するSUMIFを使いましょう。
ちなみに、SUMIFは「サムイフ」と呼びます。

SUMIFは指定できる条件が1種類のみですが、条件に一致するレコードのみを対象に合計を集計することが可能です。

よって、Excel97-2003ブック(*.xls)で条件別の合計を集計する場合はSUMIFを使用していきましょう。

SUMIFの構文

SUMIFの構文は以下の通りです。

=SUMIF(範囲,検索条件,[合計範囲])
指定した検索条件に一致するセルの値を合計します。

引数名 必須 データ型 説明
範囲 参照 「検索条件」の検索対象のセル範囲を指定します。
検索条件 すべて 「範囲」内のどのセルを計算対象にするかの条件(値やセル番地など)を指定します。
合計範囲 参照 合計対象のセル範囲を指定します。

引数「範囲」と引数「合計範囲」で指定するセル数は一致していない場合、計算結果を誤る恐れがあります。
引数「合計範囲」は仕様上では省略可能ですが、実務では省略せず指定することが一般的です。
SUMIFSと引数の位置が異なりため注意しましょう。(合計の対象範囲を指定する引数の位置が異なる)

SUMIFの使用結果イメージ

SUMIFで条件別の合計を集計したイメージは以下の通りです。
今回は商品別で「金額」列の合計を集計しました。

ポイントは、引数の「範囲」と「合計範囲」のそれぞれを同じ範囲で固定すること。
詳細は記事下部の「【参考】SUMIFの集計漏れを防ぐTIPS」を参照。

そして、引数「検索条件」は1行ごとにスライドしています。

こうすることで、ベースとなる数式を以降のセルへ使い回せているわけですね。

参考記事

参照形式(絶対参照/相対参照)の詳細は以下の記事をご参照ください。

SUMIFの数式の挿入手順

上記の結果を得るための手順は以下の通りです。

  1. 関数を挿入するセルを選択
  2. =sum」と入力
  3. サジェストから「SUMIF」を選択し、「Tab」キーで確定
  4. 元データのシートへ移動
    ※今回は「注文テーブル」シート
  5. 条件の検索対象のセル範囲を選択
    ※今回は「商品名」列
  6. コンマ(,)を入力
  7. 集計表のシートへ移動
    ※今回は「集計表」シート
  8. 条件となるセルを選択
    ※今回はA4セル
  9. コンマ(,)を入力
  10. 元データのシートへ移動
    ※今回は「注文テーブル」シート
  11. 合計したいセル範囲を選択
    ※今回は「金額」列
  12. Enter」キーで確定
  13. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はB5~B12セルへペースト

手順②の際にIMEを半角英数モードにすること。
手順⑧も必要に応じて参照形式を変更すること。(今回は指定しなくともOK

【参考】SUMIFの集計漏れを防ぐTIPS

SUMIFのリスクとしてよくあるのは、関数のセット後、元データへ追加されたレコードが集計範囲から漏れてしまうというケースです。

この原因は、手順⑤⑪の際、セット時点での元データのレコード数で範囲指定しているためです。

よって、SUMIFのセット時点で、元データにレコードが追加されても問題ない範囲指定を行いましょう。(詳細は以下参照)

通常のセル範囲が対象

元データが通常のセル範囲の場合は、列単位で指定しましょう。

ワークシート上の列番号(アルファベット部分)をクリックすればOKです。

列全体を対象範囲にしているため、当然レコードが増えても計算対象に含まれます。

なお、SUMIFの数式を横方向にコピペする際、引数「範囲」を横にスライドさせたくない(固定にしたい)場合は、列を絶対参照にしましょう。

テーブルの列が対象

元データがテーブルの場合は、普通にその列を指定すればOKです。

対象の列名が数式上にセットされ、テーブルにレコード追加されても、集計対象に含まれます。(集計対象範囲が自動拡張される)
特に指定がなければ、元データは事前にテーブルにしておくことがおすすめです。

【応用】Excel97-2003ブック(*.xls)で2種類以上の条件で合計を集計するには

Excel97-2003ブック(*.xls)で条件別の合計を集計する上で問題になるのは、条件が2種類以上になった場合です。

この場合、SUMIFでは対応できないため、基本的には次の2つのパターンいずれかで対応しましょう。

  1. SUMPRODUCTで集計
  2. 元データの表へ条件となる列を追加→SUMIFで集計

なお、パターン②の方のイメージは以下の通りです。

条件となる列はIF+ANDなどで集計対象のレコードを判定しておきましょう。
AND単独でも可(「TRUE」が集計条件)

参考記事

SUMPRODUCTで条件別の合計を集計する方法の詳細は以下の記事をご参照ください。

参考記事

IF+ANDで条件判定する方法の詳細は以下の記事をご参照ください。

【応用】SUMIFで完全一致以外の条件で集計するには

SUMIFの引数「検索条件」は「完全一致」が原則です。

もし、完全一致以外の条件で集計したい場合は、「ワイルドカード」と「比較演算子」を活用すればOKです。

参考記事

SUMIFで完全一致以外の条件で集計する方法の詳細は以下の記事をご参照ください。

サンプルファイルで練習しよう!

可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。

サンプルファイル_ワークシート関数_SUMIF.xlsx

※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)

ブックを開いたら、次の手順を実施してください。(今までの解説のまとめです)

  1. 関数を挿入するセルを選択
  2. =sum」と入力
  3. サジェストから「SUMIF」を選択し、「Tab」キーで確定
  4. 元データのシートへ移動
    ※今回は「注文テーブル」シート
  5. 条件の検索対象のセル範囲を選択
    ※今回は「商品名」列
  6. コンマ(,)を入力
  7. 集計表のシートへ移動
    ※今回は「集計表」シート
  8. 条件となるセルを選択
    ※今回はA4セル
  9. 元データのシートへ移動
    ※今回は「注文テーブル」シート
  10. 合計したいセル範囲を選択
    ※今回は「金額」列
  11. コンマ(,)を入力
  12. Enter」キーで確定
  13. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はB5~B12セルへペースト

本記事の解説と同じ結果になればOKです!

さいごに

いかがでしたでしょうか?

SUMIFは「.xlsx」や「.xlsm」が普及する前までは頻出の関数の一つでした。

自身の職場で今も使われているケースがあるのであれば、SUMIFSとセットで覚えておくと良いでしょう。

なお、SUMIF以外でExcelでのデータ集計の各種テクニックを拙著で解説しています。こちらも参考にしてみてください。


また、よりコアな情報を発信していくために「公式LINE」を開始しましたので、ご興味があれば以下バナーから友だち追加をお願いします!
特典として、Excelワークシート関数一覧(計22スライド)やExcelショートカットキー一覧(計25スライド)等をプレゼント!

森田貢士の公式LINEへの友だち追加告知用バナー

ご参考になれば幸いですm(_ _)m

森田森田

私が新卒の頃はExcel2003だったため、SUMIFにはめちゃくちゃお世話になりました。
今ではExcel97-2003ブック(*.xls)を触ることがないため、SUMIFS一本で済むようになったので、ちょっとエモく感じますね()