- 公開日:
- 更新日:
ExcelのSUMIFS関数の使い方|複数条件に一致する数値を合計する
ExcelのSUMIFS関数は、特定の条件に一致する数値の合計を求める関数です。1つの条件だけなく複数の条件にも対応することができます。
SUMIF関数で入れ子(ネスト)にしていた数式もSUMIFS関数を使えばシンプルでわかりやすい数式になります。
以下の記事では、SUMIFS関数の基本的な使い方をご紹介しています。
SUMIFS関数とは?
SUMIFS関数は、指定した複数の検索条件に一致するセルの数値を合計する関数です。
読み方
サムイフズ/サムイフス/サムイフエス
Excelの対応バージョン
Excel 2007以降のバージョンで使用できます。
※Excel 2003以前では使用できません。SUMIF関数を代用ください。
SUMIFS関数の書式
まずは、SUMIFS関数の書式を確認していきましょう。
SUMIFS関数の書式は「=SUMIFS(合計対象範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], …)」のように記述します。
SUMIFS関数では「条件範囲」と「条件」の組み合わせを最大127個まで指定することができます。
引数名 | 説明 |
---|---|
合計対象範囲 (必須) | 合計の対象となるセル範囲を指定します。 |
条件範囲1(必須) | 「条件1」の検索対象となるセル範囲を指定します。 |
条件1(必須) | 「条件範囲1」からセルを検索するための条件を数値、式、セル参照、文字列、関数の形式で指定します。
文字列を指定する場合は、「"(ダブルクォーテーション)」で囲みます。 |
条件範囲2 | 「条件2」の検索対象となるセル範囲を指定します。 |
条件2 | 「条件範囲1」からセルを検索するための条件を数値、式、セル参照、文字列、関数の形式で指定します。 |
第1引数(合計対象範囲)
1番目の引数は「合計対象範囲」です。この引数は必須です。合計の対象となるセル範囲を指定します。
第2引数(条件範囲1)
2番目の引数は「条件範囲1」です。この引数は必須です。引数「条件1」の検索対象となるセル範囲を指定します。
第3引数(条件1)
3番目の引数は「条件1」です。この引数は必須です。「条件範囲1」からセルを検索するための条件を数値、式、セル参照、文字列、関数の形式で指定します。文字列を指定する場合は、「"(ダブルクォーテーション)」で囲みます。
条件では「>」や「=」という比較演算子やワイルドカードなどを使用して検索することができます。以下の記事で表にしてまとめていますのでご参考ください。
ExcelのSUMIF関数の使い方|検索条件に一致するセルの値を合計する
SUMIFS関数の使い方(実践)
実際にSUMIFS関数を使用する例をご紹介します。引数をどのように使用するか試してみましょう。
例えば、上図から11月2日以降のバナナの合計販売数量を求めるとします。SUMIFS関数を入力する【セル(例ではD12セル)】を選択し、『=SUMIFS(』と入力します。
SUMIFS関数の合計対象範囲を指定します。「=SUMIFS(」に続いて『D3:D11,』と入力します。合計対象範囲をマウスでドラッグして選択することもできます。
SUMIFS関数の1つ目の条件範囲を指定します。11月2日以降という条件を検索する範囲です。「=SUMIFS(D3:D11,」に続いて『B3:B11,』と入力します。対象の範囲をマウスでドラッグして選択することもできます。
SUMIFS関数の1つ目の条件として11月2日以降という条件を指定します。「=SUMIFS(D3:D11,B3:B11,」に続いて『">=2019/11/2",』と入力します。文字列なので「"(ダブルクォーテーション)」で囲みます。
SUMIFS関数の2つ目の条件範囲を指定します。「バナナ」という条件を検索する範囲です。「=SUMIFS(D3:D11,B3:B11,">=2019/11/2",」に続いて『C3:C11,』と入力します。対象の範囲をマウスでドラッグして選択することもできます。
SUMIFS関数の2つ目の条件として「バナナ」という条件を指定します。「=SUMIFS(D3:D11,B3:B11,">=2019/11/2",C3:C11,」に続いて『"バナナ")』と入力し、【Enter】キーを押します。
SUMIFS関数の結果が数式を入力したセル(例ではD12セル)に表示されました。「11月2日以降のバナナ」に対応した販売数量は「22」と「17」なのでその合計である「39」が計算されています。
ワイルドカードを使って「特定の文字列を含まない」という条件を指定する方法
SUMIFS関数でよく使われる「~を含まない」という条件を指定する方法をご紹介します。
特定の文字列を含まないという条件を指定するには、ワイルドカードの「*(アスタリスク)」と比較演算子「<>」を使用します。
例えば、例のように種類の列から「ん」を含まないセルの値を合計するとします。G3セルを選択し、『=SUMIFS(D3:D9,C3:C9,"<>*ん*")』と入力します。
条件は対象の文字列「ん」の前後に「*(アスタリスク)」を記述することで「ん」を含む文字列を表していますが、比較演算子「<>」を使うことで否定しています。
条件の「ん」を含まない文字列であるセルの値だけが合計されてG3セルに表示されました。
複数条件をOR条件で合計する
SUMIFS関数はすべての条件を満たすセルの値を合計の対象としていますのでAND条件になります。OR条件を指定したい場合はSUM関数と配列を組み合わせます。
以下の記事でSUM関数と配列を組み合わせて複数条件をOR条件で合計する方法を説明しています。
ExcelのSUMIFS関数を使って複数条件をOR条件で合計する方法
VBAでSUMIFS関数を使用するには
ExcelではSUMIFS関数を使用することで複数の条件に一致するセルの値を合計することができますが、VBA(マクロ)でもSumIfsを使用すれば同じように複数の条件によって合計することができます。
VBAのSumIfsはワークシート関数(worksheetfunction)で使用できるメソッドの1つです。指定したセル範囲内で、複数の検索条件を満たすセルの値を合計します。
構文
式としては「WorksheetFunction.SumIfs(合計対象範囲,条件範囲1,条件1,[条件範囲2,条件2], …)」のように記述します。
使用例
VBAのコードの中で「SumIfs」がどのように使用されるのか使い方をご紹介します。
上図は日付ごとに商品名と販売数量が入力されています。B3~B11のセル範囲から「11月2日以降」に一致し、かつC3~C11のセル範囲から「バナナ」に一致した場合のセルの値の合計をD12セルに出力させてみましょう。
Sub sample()
Cells(12, 4) = WorksheetFunction.SumIfs(Range("D3:D11"), _
Range("B3:B11"), _
">=2019/11/2", _
Range("C3:C11"), _
"バナナ")
End Sub
VBAで「SumIfs」を使ったサンプルになります。
- 2行目:「Range("D3:D11")」が合計対象範囲です。D3~D11のセル範囲を合計対象範囲とします。
- 3行目:「Range("B3:B11")」が条件範囲1です。B3~B11のセル範囲を条件1の検索対象とします。
- 4行目:「">=2019/11/2"」が条件1です。比較演算子を使って11月2日以降を指定しています。
- 5行目:「Range("C3:C11")」が条件範囲2です。C3~C11のセル範囲を条件2の検索対象とします。
- 6行目:「"バナナ"」が条件2です。バナナを指定しています。
SUMIFS関数でよくあるエラーとその対処方法
計算結果が0になる場合
SUMIFS関数で合計結果が0になってしまう現象があります。ほとんどの場合、合計対象範囲が数値ではなく文字列だったために0になってしまうことがあります。
数式が合っているのに結果が0になるときは合計対象範囲が数値かどうか確認しましょう。
複数条件を指定できるその他の関数
SUMIFS関数の他にも複数条件を指定できるIFS系としてCOUNTIFS関数などがあります。