ExcelのDMIN関数の使い方|条件に一致するデータの最小値を求める

スポンサーリンク

Excelで「営業部だけの最小売上を調べたい」「条件に一致するデータの中で一番小さい値を知りたい」と思ったことはありませんか?

データ量が多くなると、フィルターで絞り込んでからMIN関数を使うのは手間がかかりますよね。条件を変えるたびにフィルターをかけ直すのも面倒です。

そんなときに便利なのがExcelのDMIN関数です。条件に一致するレコードだけを対象にして、最小値を自動で求めてくれますよ。

この記事では、次のサンプルデータを使って解説を進めます。

 A列(商品名)B列(カテゴリ)C列(担当者)D列(売上)
2行目ノートPC電子機器田中850,000
3行目マウス周辺機器鈴木12,000
4行目モニター電子機器佐藤65,000
5行目キーボード周辺機器田中8,500
6行目タブレット電子機器鈴木42,000
7行目USBメモリ周辺機器佐藤1,200

ExcelのDMIN関数とは?

DMIN関数は、データベース(表)の中から条件に一致するレコードを抽出し、指定したフィールドの最小値を返す関数です。

読み方は「ディーミニマム関数」です。D(Database)+ MIN(Minimum:最小値)で、「データベースの最小値」という意味になっています。

サンプルデータで言えば、DMIN関数を使うと「電子機器カテゴリの中で最も安い売上」を一発で求められます。フィルターをかけてMIN関数を使う手間がなくなりますよ。

DMIN関数はExcelのデータベース関数のひとつです。同じ仲間にDAVERAGE関数(条件付き平均)やDCOUNT関数(条件付きカウント)などがあります。

入力出力
データベース範囲 + フィールド + 条件条件を満たすレコードの中で一番小さい数値(1つ)

DMIN関数の書き方(構文と引数)

基本構文

=DMIN(データベース, フィールド, 検索条件)

引数の説明

引数必須/省略可説明
データベース必須列見出しを含むデータ範囲(例: A1:D7)
フィールド必須最小値を求めたい列の見出し文字列または列番号
検索条件必須条件を設定したセル範囲(列見出し + 条件値)

3つの引数はすべて必須です。それぞれ詳しく見ていきましょう。

データベースには、列見出し(ヘッダー行)を含めた表全体を指定します。サンプルデータでは A1:D7 です。ヘッダー行を含めないと正しく動作しないので注意してください。

フィールドには、最小値を求めたい列を指定します。指定方法は2つあります。

  • 列見出しの文字列をダブルクォーテーションで囲む(例: "売上"
  • データベースの左端から数えた列番号を数値で指定(例: 4

列見出しの文字列で指定するほうが、式を見たときに何の列かわかりやすいのでおすすめです。

検索条件は、データベース関数に特有の仕組みです。ワークシート上に条件用のセル範囲を用意します。1行目に列見出しと同じ文字列を入れ、2行目に条件値を入れます。

たとえば、F1セルに「カテゴリ」、F2セルに「電子機器」と入力しておけば、「カテゴリが電子機器」という条件になります。

DMIN関数の使い方と実務活用パターン

結論から言うと、データベース範囲・フィールド・条件範囲の3つを指定するだけです。

サンプルデータで、電子機器カテゴリの最小売上を求める手順はこちらです。

事前準備: セルF1に「カテゴリ」、F2に「電子機器」と入力して条件範囲を作ります。

=DMIN(A1:D7, "売上", F1:F2)

条件範囲F1:F2で「カテゴリが電子機器」と指定し、D列(売上)の最小値を返します。結果は 42,000(タブレット)です。

フィールドを列番号で指定する書き方もあります。D列はデータベースの左端から4番目なので、こう書けます。

=DMIN(A1:D7, 4, F1:F2)

結果は同じ 42,000 です。ただし列の順番が変わると番号もずれるので、文字列指定のほうが安全ですよ。

条件範囲の値を変えるだけで、簡単に違う条件の最小値も出せます。F2セルを「周辺機器」に変更すると、結果は 1,200(USBメモリ)になります。数式を変更する必要がないので、レポート作りに便利ですよ。

ここからは実務でよく使うパターンを見ていきましょう。

パターン1: 複数条件で最小値を求める(AND条件)

「電子機器」かつ「田中担当」のように、複数の条件をAND(かつ)で指定できます。

条件範囲を次のように設定します。

F1G1
カテゴリ担当者
電子機器田中

条件を横に並べるとAND条件になります。

=DMIN(A1:D7, "売上", F1:G2)

「カテゴリが電子機器」かつ「担当者が田中」の条件で最小値を返します。該当するのはノートPCの1件だけなので、結果は 850,000 です。

パターン2: OR条件で最小値を求める

「電子機器」または「周辺機器」のように、OR(または)で条件を指定する場合は、条件を縦に並べます

F1
担当者
田中
鈴木
=DMIN(A1:D7, "売上", F1:F3)

「担当者が田中」または「担当者が鈴木」の条件で最小値を返します。田中のデータは850,000と8,500、鈴木は12,000と42,000なので、結果は 8,500(キーボード)です。

ここがデータベース関数のポイントです。AND条件は横に並べる、OR条件は縦に並べる、と覚えておいてください。

パターン3: 比較演算子で数値条件を指定する

「売上が50,000以上のデータの中で最小値」のように、比較演算子を使った条件も指定できます。

F1セルに「売上」、F2セルに >=50000 と入力します。

=DMIN(A1:D7, "売上", F1:F2)

売上が50,000以上のデータ(850,000、65,000、42,000は対象外)に絞り、最小値を返します。結果は 65,000(モニター)です。

使える比較演算子は次のとおりです。

演算子意味条件セルの入力例
>より大きい>50000
>=以上>=50000
<より小さい<50000
<=以下<=50000
<>等しくない<>0

TIP

比較演算子はセルに直接入力します。ダブルクォーテーションで囲む必要はありません。MINIFS関数とはここが異なるので注意してくださいね。

パターン4: ワイルドカードで部分一致条件を指定する

「商品名に"PC"を含むデータ」のように部分一致で条件を指定したい場合は、ワイルドカードを使います。

F1セルに「商品名」、F2セルに PC と入力します。

=DMIN(A1:D7, "売上", F1:F2)

商品名に「PC」を含むデータ(ノートPC)の中から最小値を返します。該当は1件なので、結果は 850,000 です。

ワイルドカード意味使用例
*任意の文字列(0文字以上)PC
?任意の1文字??ウス(マウスにマッチ)

よくあるエラーと対処法

DMIN関数で「思った結果が出ない」ときの原因と対処法を整理しました。

症状原因解決策
結果が 0 になる条件に一致するデータがない条件の文字列を確認(全角/半角、前後のスペース)
結果が 0 になる数値に見える文字列が入っているISNUMBER関数で確認し、VALUE関数で変換
#VALUE! エラーフィールド指定が不正列見出しと完全一致する文字列、または正しい列番号を指定
#NAME? エラー関数名のスペルミスDMIN のスペルを確認
予期しない値が返る条件範囲のヘッダーがデータベースのヘッダーと不一致条件範囲の1行目をデータベースの列見出しと完全一致させる

結果が「0」になるときの対処法

DMIN関数で一番多いトラブルです。原因は大きく2つあります。

1. 条件に一致するデータがない

条件の文字列が全角/半角で違っていたり、前後に見えないスペースが入っていたりすることがあります。TRIM関数で空白を除去してから比較すると解決することが多いですよ。

2. 数値に見えて中身が文字列

CSVファイルの取り込み後に起きやすい問題です。セルが左揃えになっていたら文字列の可能性があります。

=ISNUMBER(D2)

TRUE なら数値、FALSE なら文字列です。文字列だった場合は、VALUE関数で数値に変換してみてください。

条件範囲のヘッダー不一致に注意

データベース関数でよくあるミスがこれです。条件範囲の1行目(F1セルなど)に入力する列見出しは、データベースのヘッダーと完全に同じ文字列でなければなりません。

たとえばデータベースのヘッダーが「カテゴリ」なのに、条件範囲で「カテゴリー」と長音記号を付けてしまうと、条件が無視されて意図しない結果になります。

似た関数との違い・使い分け

DMIN関数に関連する関数をまとめて比較します。

DMAX関数との対比(最小値 vs 最大値)

DMAX関数は、DMIN関数と対になる関数です。構文が完全に同じで、返す値の方向だけが違います。

=DMIN(A1:D7, "売上", F1:F2)   … 条件を満たす最小値
=DMAX(A1:D7, "売上", F1:F2)   … 条件を満たす最大値

条件範囲が「カテゴリ = 電子機器」の場合、DMIN関数は 42,000(タブレット)、DMAX関数は 850,000(ノートPC)を返します。

関数機能返す値
DMIN条件付き最小値一番小さい数値
DMAX条件付き最大値一番大きい数値

この2つをセットで使うと、データの振れ幅がすぐに把握できます。「電子機器カテゴリの売上レンジは42,000〜850,000」のように、報告資料にそのまま使えますよ。

MINIFS関数との使い分け

Excelには条件付きで最小値を求める関数がもうひとつあります。MINIFS関数です。

=DMIN(A1:D7, "売上", F1:F2)
=MINIFS(D2:D7, B2:B7, "電子機器")

どちらも条件に一致するデータの最小値を返しますが、仕組みが違います。

比較項目DMIN関数MINIFS関数
条件の指定方法セル範囲(条件範囲)に入力数式の引数に直接記述
条件の変更セルの値を変えるだけ数式の書き換えが必要
複数条件の設定条件範囲の行・列で柔軟に指定引数のペアを追加(最大126組)
OR条件条件を縦に並べるだけ配列数式やSUM関数との組み合わせが必要
対応バージョンすべてのバージョンExcel 2019以降
数式のシンプルさ条件範囲の準備が必要数式だけで完結

使い分けのポイント:

  • 条件を頻繁に変えるレポート → DMIN関数がおすすめ。セルの値を変えるだけで結果が切り替わります
  • 数式だけでサッと求めたい → MINIFS関数がおすすめ。条件範囲を別途用意する手間がありません
  • OR条件を使いたい → DMIN関数が圧倒的に楽です。条件を縦に並べるだけで済みます
  • 古いバージョンのExcelを使っている → DMIN関数を使いましょう。MINIFS関数はExcel 2019以降でないと使えません

データベース関数シリーズの一覧

DMIN関数はデータベース関数シリーズのひとつです。構文がすべて同じ(データベース, フィールド, 検索条件)なので、1つ覚えれば他の関数にもすぐに応用できます。

関数機能使い分けのポイント
DMIN条件付きの最小値この記事で解説
DMAX条件付きの最大値最大値を求めたいとき
DAVERAGE条件付きの平均条件を絞って平均を求めたいとき
DCOUNT条件付きの件数(数値セル)数値データの件数を数えたいとき
DCOUNTA条件付きの件数(空白以外)空白以外のセルを数えたいとき
MINIFS条件付きの最小値数式だけで完結させたいとき
MIN最小値(条件なし)範囲全体の最小値を求めるとき

条件範囲のセットアップも共通なので、まとめて覚えると効率的ですよ。

まとめ

  • DMIN関数は条件に一致するデータの中から最小値を返すデータベース関数
  • 書き方は =DMIN(データベース, フィールド, 検索条件) で、引数は3つとも必須
  • 条件をセル範囲で指定するため、セルの値を変えるだけで条件を切り替えられる
  • 複数条件は横に並べるとAND、縦に並べるとORになる
  • DMAX関数と対で使うとデータの振れ幅がわかる
  • 数式だけで完結させたい場合はMINIFS関数が便利
  • データベース関数シリーズは構文が共通なので、まとめて覚えるのがおすすめ

まずは =DMIN(データベース, "列見出し", 条件範囲) の基本形から試してみてください。DMAX関数DAVERAGE関数もセットで使えるようになると、条件付き集計の幅がぐっと広がりますよ。


この記事で紹介した関数・関連記事

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