オーロラさんの勉強帳

IT企業勤務。データベース、Excel、Excel VBA、ネットワーク、LinuxなどIT関連のことを主に書いていきます。少しでもお役に立てたら幸いです。

【Excel】SUMIF関数の使い方 ~指定した条件に一致する行データの値を合計する~

本記事ではExcelSUMIF関数の使い方を説明します。

SUMIF関数とは。SUMIF関数の書式

SUMIF関数は、検索条件に一致した『行』の数値を合計する関数です。
もう少し詳しく書くと、指定した検索範囲の中で検索条件一致する行を検索し、その行の合計範囲の数値データを合計します。
検索条件には比較演算子、ワイルドカードを使うことができます。


SUMIF関数の書式は以下の通りです。

SUMIF関数の書式
=SUMIF(検索範囲, 検索条件, 合計範囲)

※検索範囲、合計範囲の注意点
検索範囲、合計範囲の開始行、終了行を必ず合わせます。例えば検索範囲が「A1:A10」の場合は合計範囲を「C1:C10」とします。(検索範囲、合計範囲ともに開始が1行目、終了が10行目)
もし、検索範囲「A1:A10」(開始行1:終了行10)、合計範囲「C5:C10」(開始行5:終了行10)のようにずれていると正しい合計値を求めることができません。


以下画像では、SUMIF関数を使って、商品コードがA100の受注金額の合計と、A101の受注金額の合計を求めています。
f:id:auroralights:20211229201345p:plain

商品コードがA100の受注金額の合計は、『=SUMIF($B$3:$B$14,"A100",$F$3:$F$14)』で求めています。
検索範囲『$B$3:$B$14』の中で検索条件『A100』に一致する行に対して、合計範囲『$F$3:$F$14』の値を合計しています。

※商品コードがA101の受注金額の合計は、『=SUMIF($B$3:$B$14,"A101",$F$3:$F$14)』で求めています。

SUMIF関数の考え方は、以下の画像もご参考ください。
(商品コードA100の受注金額の合計を求める例)
f:id:auroralights:20211229202013p:plain


SUMIF関数の検索条件に使える『比較演算子』・『ワイルドカード』

SUMIF関数の引数の『検索条件』には、以下の比較演算子・ワイルドカードを使うことができます。比較演算子・ワイルドカードを使用する場合は検索条件とあわせて『"(ダブルクォーテーション)』で囲みます。

比較演算子 説明 使用例
= 等しい "=10"
<> 等しくない "<>男"
より大きい ">19"
< より小さい "<20"
>= 以上 ">=20"
<= 以下 ”<=19"

ワイルドカード 説明 検索条件の使用例
* 任意の文字列 "A*"
? 任意の1文字 "?田"


SUMIF関数の使用例

担当者ごとの受注金額の合計を求める

以下の画像では、担当者ごとの受注金額の合計を求めています。
f:id:auroralights:20211229204814p:plain
担当者が佐藤の受注金額の合計は、『=SUMIF($G$3:$G$14,J3,$F$3:$F$14)』で求めています。

検索範囲『$G$3:$G$14』で検索条件『J3』に一致する行の合計範囲『$F$3:$F$14』の合計を求めます。
※検索条件は『"佐藤"』としてもいいですが、仕事ではこの例のようにセル参照させる方法をよく使います。


受注日ごとの受注金額の合計を求める (日付を検索条件にする)

以下の画像では、受注日ごとの受注金額の合計を求めています。
f:id:auroralights:20211229211927p:plain
受注日が2022/1/1の受注金額の合計は、『=SUMIF($H$3:$H$14,J3,$F$3:$F$14)』で求めています。

検索条件の日付は、セル参照しない場合は『=SUMIF($H$3:$H$14,"2022/1/1",$F$3:$F$14)』のように書きます。


比較演算子を使った例

以下の画像では比較演算子を使って日付を条件に受注金額の合計を求めています。
f:id:auroralights:20211229212803p:plain

受注日が2022/1/2までの受注金額の合計は『=SUMIF($H$3:$H$14,"<=2022/1/2",$F$3:$F$14)』で求めています。

受注日が2022/1/3以降の受注金額の合計は『=SUMIF($H$3:$H$14,">=2022/1/3",$F$3:$F$14)』で求めています。

受注日が2022/1/1以外の受注金額の合計は『=SUMIF($H$3:$H$14,"<>2022/1/1",$F$3:$F$14)』で求めています。

受注日が2022/1/2~2022/1/4の受注金額の合計は『=SUMIF($H$3:$H$14,">=2022/1/2",$F$3:$F$14)-SUMIF($H$3:$H$14,">2022/1/4",$F$3:$F$14)』で求めています。
受注日が2022/1/2以降の受注金額の合計から受注日が2022/1/5以降の受注金額の合計をマイナス(除算)することで、2022/1/2~2022/1/4の受注金額の合計を求めています。


ワイルドカードを使った例

検索条件にワイルドカードを使った例を紹介します。『*』が任意の文字列、『?』が任意の1文字の文字列となります。
f:id:auroralights:20211230114816p:plain

商品コードが「A」から始まる商品の受注金額の合計は『=SUMIF($B$3:$B$14,"A*",$F$3:$F$14)』で求めています。

商品コードが「B」から始まる商品の受注金額の合計は『=SUMIF($B$3:$B$14,"B*",$F$3:$F$14)』で求めています。

商品コードに「2」を含む商品の受注金額の合計は『=SUMIF($B$3:$B$14,"*2*",$F$3:$F$14)』で求めています。

商品コードが「A○01」の商品の受注金額の合計は『=SUMIF($B$3:$B$14,"A?01",$F$3:$F$14)』で求めています。
※○は任意の1文字です。

商品コードが「○101」の商品の受注金額の合計は『=SUMIF($B$3:$B$14,"?101",$F$3:$F$14)』で求めています。
※○は任意の1文字です。


VLOOKUP関数のように検索した条件に一致する行の数値を返す方法

検索範囲で指定した列の値が一意な値(重複しない値)の場合、VLOOKUP関数のように条件に一致する行の数値データを返すことができます。
※検索範囲の値が一意な値であれば、合計するものがないので合計範囲の数値をそのまま返します。VLOOKUPのように文字列などは返せません。
※複数条件を指定するSUMIFS関数の方が、この方法をより効果的に活用できます。

以下の画像では、検索範囲がB列(日付)で一意な値なので、特定の日付の神戸支店の売り上げを求めています。
f:id:auroralights:20211230115248p:plain

2022/1/3の神戸支店の売り上げは『=SUMIF($B$3:$B$11,G3,$D$3:$D$11)』で求めています。

複数の条件を指定できるSUMIFS関数については、以下記事で紹介していますので、参考にしていただければ幸いです。
auroralights.jp


お読みいただきありがとうございました。