ExcelのDELTA関数の使い方|0と1で判定する数値比較とSUMPRODUCT活用

スポンサーリンク

Excel DELTA関数とは?クロネッカーデルタの基本

「2つの数値が同じかどうかを判定したい」と思ったことはありませんか? IF関数だとTRUE/FALSEが返りますよね。 そのままでは計算に使えず不便です。

ExcelのDELTA関数を使えば、2つの数値が等しいとき1、異なるとき0を返してくれます。 この0と1の数値がそのまま計算に使えるのが最大の強みです。 SUMPRODUCT関数と組み合わせれば、一致件数のカウントもワンステップで完了しますよ。

この記事では、DELTA関数の基本から実務活用、似た関数との違いまでまとめて解説しますよ。

読み方と語源

DELTA関数は「デルタかんすう」と読みます。 名前の由来はギリシャ文字のデルタ(δ)です。 数学では「クロネッカーのデルタ(Kronecker delta)」と呼ばれる概念に対応しています。 δ(i, j) は i と j が等しければ1、異なれば0を返す関数です。 Excelのエンジニアリング関数カテゴリに分類されていますよ。

構文と引数

DELTA関数の構文は次のとおりです。

=DELTA(数値1, [数値2])

引数はシンプルに2つだけです。

引数必須/省略可説明
数値1必須比較する最初の数値
数値2省略可比較する2番目の数値。省略すると0として扱われる

引数の順番はどちらが先でも結果は変わりません。 DELTA(5, 3) でも DELTA(3, 5) でも同じ0が返りますよ。

返り値(0と1)の意味

DELTA関数の返り値はとてもシンプルです。

  • 数値1 = 数値2 のとき → 1を返す
  • 数値1 ≠ 数値2 のとき → 0を返す

IF関数のようにTRUE/FALSEではなく、数値の0と1で返るのがポイントです。 数値なので、そのまま足し算や掛け算に組み込んで使えますよ。

DELTA関数の基本的な使い方と具体例

2つの数値を比較する

もっとも基本的な使い方は、2つの数値が同じかどうかの判定です。

=DELTA(5, 5)    → 1(等しい)
=DELTA(5, 4)    → 0(異なる)
=DELTA(0.5, 0)  → 0(異なる)

セル参照でも同じように使えます。 たとえばA1に「10」、B1に「10」が入っていれば、次の数式は1を返します。

=DELTA(A1, B1)  → 1

在庫データの照合や、入力値のチェックに便利ですよ。

数値2を省略した場合(0との比較)

第2引数を省略すると、数値1が0かどうかを判定します。

=DELTA(0)   → 1(0と0の比較なので一致)
=DELTA(3)   → 0(3と0の比較なので不一致)

「セルの値がゼロかどうか」を素早く調べたいときに使ってみてください。

SUMPRODUCTと組み合わせた実務活用

DELTA関数の真価は、他の関数と組み合わせたときに発揮されます。 特にSUMPRODUCT関数との組み合わせは定番です。

一致件数を一括カウントする数式

A列の目標値とB列の実績値が一致する件数を数えたい場合、次の数式で一発です。

=SUMPRODUCT(DELTA(A2:A11, B2:B11))

DELTA関数がA2とB2、A3とB3…と各行のペアを比較して、一致なら1、不一致なら0を返します。 SUMPRODUCTがその1と0を合計するので、一致件数が求まる仕組みです。

たとえば次のようなデータがあるとします。

 A列(目標)B列(実績)DELTA結果
2行目1001001
3行目2001800
4行目1501501
5行目3003001

この場合、SUMPRODUCT(DELTA(A2:A5, B2:B5))の結果は3になります。 目標どおりの実績が3件あることがわかりますね。

複数列の一致チェックへの応用

2つの条件を同時に満たす件数を数えたいときは、DELTA関数を掛け算で組み合わせます。

=SUMPRODUCT(DELTA(A2:A11, B2:B11) * DELTA(C2:C11, D2:D11))

A列とB列が一致し、かつC列とD列も一致する行だけがカウントされます。 DELTA関数が0か1を返すので、掛け算すると両方1のときだけ1になる仕組みです。 COUNTIFSでは対応しにくい「完全一致の組み合わせ」を柔軟にチェックできますよ。

IF・EXACT・GESTEPとの違い比較表

DELTA関数と似た機能を持つ関数がいくつかあります。 用途に応じて使い分けましょう。

項目DELTAIFEXACTGESTEP
比較対象数値のみ数値・文字列・論理値文字列(大文字小文字区別あり)数値のみ
返り値0 または 1任意の値を指定可能TRUE または FALSE0 または 1
判定内容等しいか条件を満たすか文字列が完全一致か以上かどうか
SUMPRODUCT連携そのまま使える工夫が必要工夫が必要そのまま使える

使い分けのポイントは次のとおりです。

  • 数値の一致判定+集計に使いたい → DELTA関数
  • 条件に応じて表示を変えたい → IF関数
  • 文字列を大文字小文字まで区別して比較したい → EXACT関数
  • 数値が基準値以上かを判定したい → GESTEP関数

DELTA関数とGESTEP関数はどちらも0/1を返すエンジニアリング関数です。 「等しいか」を見るならDELTA、「以上か」を見るならGESTEPと覚えてください。

VALUEエラーの原因と対処法

DELTA関数で最も多いエラーは#VALUE!エラーです。 原因と対処法を確認しておきましょう。

文字列を渡したときのエラー

DELTA関数は数値専用の関数です。 引数に文字列を渡すと#VALUE!エラーになります。

=DELTA("ABC", "ABC")  → #VALUE!エラー
=DELTA(A1, B1)         → A1やB1が文字列なら#VALUE!エラー

数字に見えるデータでも、文字列として格納されている場合があります。 セルの左上に緑の三角マークが出ていたら文字列扱いです。 VALUE関数で数値に変換するか、セルの表示形式を「数値」に変更してください。

文字列の比較をしたい場合は、EXACT関数を使いましょう。

日付・論理値の注意点

日付はExcel内部ではシリアル値(数値)として扱われます。 そのためDELTA関数で日付同士の比較は可能です。

=DELTA(A1, B1)  → 両方が同じ日付ならシリアル値が同じなので1を返す

ただし、論理値のTRUE/FALSEには注意が必要です。 TRUE(=1)やFALSE(=0)を直接渡すと#VALUE!エラーになります。

=DELTA(TRUE, 1)   → #VALUE!エラー
=DELTA(1*TRUE, 1)  → 1(TRUEを数値に変換すればOK)

論理値を使いたい場合は、1*TRUEのように算術演算で数値に変換してから渡してくださいね。

まとめ

DELTA関数は、2つの数値が等しいかを0と1で判定するシンプルな関数です。

  • 等しければ1、異なれば0を返す
  • 第2引数を省略すると0との比較になる
  • SUMPRODUCTとの組み合わせで一致件数のカウントが得意
  • 文字列を渡すと#VALUE!エラーになるので注意
  • 文字列比較ならEXACT関数、条件分岐ならIF関数を使い分ける

0と1の数値を返すという特性を活かして、集計や分析に活用してみてください。

DELTA関数はExcel 2016以降のすべてのバージョンで利用できます。 Microsoft 365やExcel for the webでも同じ構文で使えますよ。

タイトルとURLをコピーしました