2025/6/18

エクセルSUMIF関数の使い方: 単一条件ありで合計値算出 - 複数列データにも対応可

Thumbnail for エクセルSUMIF関数の使い方: 単一条件ありで合計値算出 - 複数列データにも対応可

はじめに

エクセルのSUMIF関数は、 データ集計や数値計算など、多くの場面で頻繁に使用される関数の1つです。 複数条件が設定できるSUMIFS関数もあります(引数の順序が変わるので注意)。

ここでは、SUMIF関数の

  • 基本機能・使い方
  • 注意事項
  • 関連する関数
  • 使用例、応用法

について取り扱います。

基本機能・使い方

SUMIF関数は、 条件付きでデータを合計する関数 です。 条件にマッチしても、合計する値が文字列や空白セルの場合は無視されます。

SUMIF関数
SUMIF ( 検索範囲, 検索条件, 合計対象範囲)

指定した 検索範囲 中で 検索条件 に合致する位置の、 合計対象範囲 の値を合計 する。

検索範囲
: 必須
A1:A5
検索するデータ範囲。合計範囲が指定されていない場合は、合計範囲としても使用される。
検索条件
: 必須
"<>" & F2
合計する条件。
合計対象範囲
: 任意
B1:B5
合計する数値データ範囲。

検索条件には、 比較演算子が使用できます。
比較演算子と値の間に、 &(アンパサンド/アンド記号)が必要 なので注意です (値が文字列の場合以外)。

比較演算子

数値同士や文字列同士を比較するときに使用する演算子です。

比較演算子意味使用例
(文字列)

(数値)

(参照)
=等しい (==)"=A""=" & 0"=" & A1
<>等しくない (\ne)"<>A""<>" & 0"<>" & A1
>より大きい (>>)">" & 0">" & A1
<より小さい (<<)"<" & 0"<" & A1
>=以上 (\geq)">=" & 0">=" & A1
<=以下 (\leq)"<=" & 0"<=" & A1

※ 比較演算子 (+&) は省略可

注意事項

検索条件で部分一致を使用できるか、 意図した結果にならない場合にどうしたらいいのか、 について解説します。

検索条件の仕様

  • 部分一致検索(ワイルドカード)に対応(詳細は後述)
  • 大文字・小文字の区別はしない
  • 全角・半角の区別はする
  • 一度に照合できる文字列は 最大255文字まで
  • 一度に複数条件を指定することはできない(対応策は後述)

うまく動作しないときの原因と対策

SUMIF関数がうまく動作しない場合、 以下のような原因が考えられます。

  • うまく計算されない、0になるとき:

    • 検索条件 の記入方法が間違っている。
      対策:以下を再確認する(参考:上記「比較演算子」)。
      • 比較演算子は "で囲まれているか?
      • 文字列は "で囲まれているか?
      • 比較演算子と数値 / 参照は &で結ばれているか?
      • 参照を "で囲んでいないか?
    • 合計対象範囲(省略時は、検索範囲の値が数値でなく、文字列として認識されている
      対策:セルの書式を 数値 (or 指数など) にする。セル記入値に含まれる 空白文字特殊文字を削除する。※
  • #VALUE!エラーが表示されるとき:

    • 検索範囲 合計対象範囲 のサイズが異なっている。
      対策:サイズが同じになるように選択範囲を修正する。

※ 1をかけると数値に変換できる

文字列として認識されていても、1を掛ける (または -1x-1 を掛ける) ことで数値に変換できます。

例:=1*A1, =--A1

関連する関数

SUMIF関数と似た機能を持つ関数には、以下があります。

  • SUM関数:指定した範囲の数値を合計する。
  • SUMIFS関数: 複数条件 を指定して、合計する。
  • DSUM関数: 複雑な条件(OR、AND条件の組合せなど) を指定して、合計できる。
  • SUBTOTAL関数: フィルター機能による非表示の値を排除 して、合計値を算出できる。
  • AGGREGATE関数:SUBTOTAL関数の機能に加え、 エラー値を除去 して合計値を算出できる。
  • SUMPRODUCT関数:複数の配列の 要素同士の積 (または和/差/商) を合計する。

使用例、応用例

SUMIF関数の使用例・応用例として、以下のパターンを紹介します。

  • 複数列のデータへの対応: 検索範囲合計対象範囲 を同サイズのまま参照位置をずらす。
  • 部分一致検索: 検索条件にワイルドカードを使用。

複数列のデータへの対応

検索範囲 中でマッチした位置と 同じ位置の値が合計対象範囲から読み取られる※ ことを利用すると、 複数列のデータにも対応できます。

※ たとえば、 検索範囲内の2行3列目がマッチする場合、 合計対象範囲内の2行3列目の値が計算に使用される。

関数の構成

=SUMIF( 検索範囲 , 検索値 , 合計対象範囲 )

部分一致検索

SUMIF関数では、検索条件にワイルドカードを使用できるため、 部分一致検索が可能です。 ワイルドカードの文字数を限定したい場合は、 *(アスタリスク記号)でなく?(疑問符 / ハテナ記号)を使用します。

関数の構成

=SUMIF( 検索範囲 , 検索値 , 合計対象範囲 )

検索値に、ワイルドカード * 使用


ワイルドカード

ワイルドカードとは、任意の文字列を表す特殊な文字のことです。
言葉で表すと「ほにゃらら」「○○」などのイメージです。
特定の文字列が含まれるかどうかを調べるときに使用します。
関連する記号としては、以下があります。

  • * (アスタリスク記号):任意の文字列(文字数不定)
  • ? (疑問符 / ハテナ記号):任意の1文字
  • ~ (チルダ記号):エスケープ記号(*, ? 記号を検索文字として使用する場合に使用)

【数値配列の値が文字列形式になっている例】
ABCDEFG
1❌数値配列に文字列あり✅数値配列が数値のみ
2A1A1
3A1A1
4A1A1
5B←文字列B1
6B1B1
7
8Bの合計値:1Bの合計値:2

ABCDEFGH
1A1B1
2A1B1検索値:B
3A1C1合計値:4
4B1C1
5B1C1

ABCDEF
11-a10
21-b10検索値:*-b
31-c10合計値:20
42-a10
52-b10