<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>条件付き最大値 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/%E6%9D%A1%E4%BB%B6%E4%BB%98%E3%81%8D%E6%9C%80%E5%A4%A7%E5%80%A4/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 14:54:14 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>条件付き最大値 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのDMAX関数の使い方｜条件付きで最大値を取る完全ガイド（MAXIFS比較・複数条件・FAQ）</title>
		<link>https://mashukabu.com/spreadsheet-dmax-function/</link>
					<comments>https://mashukabu.com/spreadsheet-dmax-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 26 Mar 2026 11:46:56 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[DMAX]]></category>
		<category><![CDATA[MAX]]></category>
		<category><![CDATA[MAXIFS]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[データベース関数]]></category>
		<category><![CDATA[条件付き最大値]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5363</guid>

					<description><![CDATA[スプレッドシートのDMAX関数で条件に合うデータの最大値を取得する方法を解説。基本構文、AND/OR条件、MAX・MAXIFSとの使い分け、エラー対処、複数条件の組み方をサンプル付きで完全網羅。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「営業部で一番高い売上はいくらだろう」「商品カテゴリごとの最高単価を調べたい」。こんな場面で、フィルタを毎回かけ直してからMAX関数を使っていませんか。</p>



<p class="wp-block-paragraph">条件が変わるたびにフィルタをかけ直すのは面倒ですよね。しかもフィルタ操作は元のデータ表示そのものを変えてしまうので、共有シートだと他の人の作業にも影響します。「ちょっと営業部だけの最高額を確認したかっただけなのに、誰かのフィルタ設定を上書きしてしまった」という地味な事故は、共同編集の現場ではよくある話です。</p>



<p class="wp-block-paragraph">そんなときに便利なのがDMAX関数です。条件を別のセル範囲に書いておくだけで、該当するデータの最大値を自動で返してくれます。条件セルを書き換えるだけで結果が即座に切り替わるので、定型レポートやダッシュボードと相性抜群です。フィルタを触らないので、他の人の作業を邪魔することもありません。</p>



<p class="wp-block-paragraph">この記事では、DMAX関数の基本構文と引数の役割から解説します。AND/OR条件の書き分け、比較演算子・ワイルドカードによる高度な条件指定、MAX関数・MAXIFS関数との使い分けを順に押さえます。さらにDMIN関数との組み合わせ、よくあるエラーと対処法、実務でつまずきやすいFAQまでまとめて紹介します。読み終わるころには「条件付きで最大値を取るならDMAXで一発」と自信を持って言えるようになりますよ。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのDMAX関数とは？ — 条件に合うデータの最大値を返す</a><ol><li><a href="#toc2" tabindex="0">MAX関数との違い（全体の最大値 vs 条件付き最大値）</a></li><li><a href="#toc3" tabindex="0">DMIN関数との関係（最大値と最小値）</a></li></ol></li><li><a href="#toc4" tabindex="0">DMAX関数の書き方（構文と引数）</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の説明</a></li><li><a href="#toc7" tabindex="0">データベース（第1引数）</a></li><li><a href="#toc8" tabindex="0">フィールド（第2引数）</a></li><li><a href="#toc9" tabindex="0">条件（第3引数）</a></li></ol></li><li><a href="#toc10" tabindex="0">DMAX関数の基本的な使い方</a><ol><li><a href="#toc11" tabindex="0">サンプルデータ</a></li><li><a href="#toc12" tabindex="0">単一条件の書き方（AND条件の基本）</a></li><li><a href="#toc13" tabindex="0">比較演算子を使った条件</a></li></ol></li><li><a href="#toc14" tabindex="0">DMAX関数の使い方｜AND条件・OR条件の書き分け</a><ol><li><a href="#toc15" tabindex="0">AND条件（同じ行に並べる）</a></li><li><a href="#toc16" tabindex="0">OR条件（別の行に並べる）</a></li><li><a href="#toc17" tabindex="0">AND+OR の複合条件</a></li></ol></li><li><a href="#toc18" tabindex="0">比較演算子・ワイルドカードで高度な条件を指定する</a><ol><li><a href="#toc19" tabindex="0">比較演算子の早見表</a></li><li><a href="#toc20" tabindex="0">ワイルドカードの早見表</a></li></ol></li><li><a href="#toc21" tabindex="0">DMAX関数 vs MAX関数 vs MAXIFS関数の使い分け</a><ol><li><a href="#toc22" tabindex="0">3関数の比較表</a></li><li><a href="#toc23" tabindex="0">MAX関数を選ぶべきケース</a></li><li><a href="#toc24" tabindex="0">MAXIFS関数を選ぶべきケース</a></li><li><a href="#toc25" tabindex="0">DMAX関数を選ぶべきケース</a></li></ol></li><li><a href="#toc26" tabindex="0">DMAX関数とDMIN関数の組み合わせ（最大値・最小値の同時集計）</a><ol><li><a href="#toc27" tabindex="0">同じ条件範囲を共有する例</a></li><li><a href="#toc28" tabindex="0">最大値と最小値の差（レンジ）を求める</a></li></ol></li><li><a href="#toc29" tabindex="0">よくあるエラー（#VALUE! / #NUM!）と対処法</a><ol><li><a href="#toc30" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc31" tabindex="0">#NUM! エラー</a></li><li><a href="#toc32" tabindex="0">結果が「0」になる</a></li></ol></li><li><a href="#toc33" tabindex="0">DMAX関数のよくある質問（FAQ）</a><ol><li><a href="#toc34" tabindex="0">Q1. DMAX関数とMAXIFS関数、結局どっちを使えばいい？</a></li><li><a href="#toc35" tabindex="0">Q2. DMAX関数で文字列の最大値（辞書順で最後）は取れる？</a></li><li><a href="#toc36" tabindex="0">Q3. 日付列の最大値（最新日付）はDMAX関数で取れる？</a></li><li><a href="#toc37" tabindex="0">Q4. 空白セルがある列でDMAX関数を使うとどうなる？</a></li><li><a href="#toc38" tabindex="0">Q5. 別シートのデータをDMAX関数で集計できる？</a></li><li><a href="#toc39" tabindex="0">Q6. DMAX関数でN番目に大きい値は取れる？</a></li><li><a href="#toc40" tabindex="0">Q7. 同じ最大値が複数あるとき、どのレコードかを知るには？</a></li><li><a href="#toc41" tabindex="0">Q8. ARRAYFORMULAでDMAXを一気に複数行へ展開できる？</a></li><li><a href="#toc42" tabindex="0">Q9. 条件範囲とデータベース範囲を同じシートに置く必要はある？</a></li></ol></li><li><a href="#toc43" tabindex="0">まとめ｜条件付き最大値はDMAXで一発</a><ol><li><a href="#toc44" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのDMAX関数とは？ — 条件に合うデータの最大値を返す</span></h2>



<p class="wp-block-paragraph">DMAX関数（読み方: ディー マックス）は、<strong>データベース形式の表から条件に合うレコードを探し、指定した列の最大値を返す関数</strong>です。</p>



<p class="wp-block-paragraph">名前は「Database MAX（データベースの最大値）」の略です。<a href="https://mashukabu.com/spreadsheet-dsum-function/">DSUM</a>（条件付き合計）や<a href="https://mashukabu.com/spreadsheet-daverage-function/">DAVERAGE</a>（条件付き平均）、<a href="https://mashukabu.com/spreadsheet-dcounta-function/">DCOUNTA</a>（条件付きカウント）と同じ「データベース関数」の仲間です。引数の指定方法（データベース範囲・フィールド・条件範囲の3つ）はファミリー全体で共通なので、1つ覚えれば芋づる式に他の関数も使えるようになります。</p>



<p class="wp-block-paragraph">DMAX関数の特徴をまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>条件をセル範囲（条件範囲）で指定するスタイル</li><li>条件範囲を書き換えるだけで集計条件をすぐ切り替えられる</li><li>複数条件（AND条件・OR条件）にも対応</li><li>見出し付きのリスト形式のデータが前提</li><li>ワイルドカード（<code>*</code>・<code>?</code>）や比較演算子（<code>></code>・<code><</code>）にも対応</li><li>数値以外（文字列・空白）は集計対象から自動的に除外される</li></ul>



<p class="wp-block-paragraph"><strong>NOTE</strong></p>



<p class="wp-block-paragraph">DMAX関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同じ関数があるので、ファイル形式を変換しても式が壊れません。社内でExcel派とスプレッドシート派が混在していても、安心して使い回せます。</p>



<h3 class="wp-block-heading"><span id="toc2">MAX関数との違い（全体の最大値 vs 条件付き最大値）</span></h3>



<p class="wp-block-paragraph">DMAX関数と<a href="https://mashukabu.com/spreadsheet-max-function/">MAX関数</a>の最大の違いは「条件を付けられるかどうか」です。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>MAX関数</th><th>DMAX関数</th></tr></thead><tbody><tr><td>条件指定</td><td>できない（範囲全体が対象）</td><td>できる（条件範囲で絞り込み）</td></tr><tr><td>構文</td><td>=MAX(範囲)</td><td>=DMAX(データベース, フィールド, 条件)</td></tr><tr><td>用途</td><td>シンプルに最大値を求める</td><td>特定の条件に合うデータだけの最大値</td></tr><tr><td>引数の数</td><td>1つ</td><td>3つ</td></tr><tr><td>条件の切り替え</td><td>数式を書き換える</td><td>条件セルを書き換える</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">たとえば「全社の最高金額」を知りたいだけならMAX関数で十分です。「営業部だけの最高金額」「金額10万円未満のなかでの最高額」のように条件を付けたい場面でDMAX関数の出番になります。</p>



<h3 class="wp-block-heading"><span id="toc3">DMIN関数との関係（最大値と最小値）</span></h3>



<p class="wp-block-paragraph">DMAX関数とちょうど対になる関数が<a href="https://mashukabu.com/spreadsheet-dmin-function/">DMIN関数</a>です。同じ条件範囲・同じデータベース範囲を使い、結果が最大値か最小値かだけが違います。「最高額と最低額を並べて表示したい」ようなレポートでは、DMAXとDMINを並べて使うのが定番パターンです。</p>



<h2 class="wp-block-heading"><span id="toc4">DMAX関数の書き方（構文と引数）</span></h2>



<h3 class="wp-block-heading"><span id="toc5">基本構文</span></h3>



<pre class="wp-block-code"><code>=DMAX(データベース, フィールド, 条件)</code></pre>



<p class="wp-block-paragraph">引数は3つで、すべて必須です。省略はできません。</p>



<h3 class="wp-block-heading"><span id="toc6">引数の説明</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>データベース</td><td>必須</td><td>見出し行を含むデータ範囲（例: A1:D100）</td></tr><tr><td>フィールド</td><td>必須</td><td>最大値を求める列の見出し名（文字列）または列番号（数値）</td></tr><tr><td>条件</td><td>必須</td><td>条件を記述したセル範囲（見出し行+条件行）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">それぞれ詳しく見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc7">データベース（第1引数）</span></h3>



<p class="wp-block-paragraph">データベースには、<strong>見出し行を含めたデータ範囲</strong>を指定します。先頭行に列の見出し（「部署」「商品名」「金額」など）が入っている必要があります。</p>



<p class="wp-block-paragraph">注意点として、見出し行を含めずにデータ部分だけを指定するとエラーや想定外の結果になります。「A2:D100」ではなく必ず「A1:D100」のように見出し行から指定してください。</p>



<h3 class="wp-block-heading"><span id="toc8">フィールド（第2引数）</span></h3>



<p class="wp-block-paragraph">最大値を求めたい列を指定します。指定方法は2つあります。</p>



<ul class="wp-block-list"><li><strong>文字列で指定</strong>: <code>"金額"</code> のように、見出しと同じ文字列をダブルクォーテーションで囲む</li><li><strong>数値で指定</strong>: データベースの左端列を1として、列の位置を数値で指定する（3列目なら <code>3</code>）</li></ul>



<p class="wp-block-paragraph">文字列で指定するほうが、あとから見たとき何の列を集計しているのかわかりやすいのでおすすめです。列番号指定だと、列の追加・削除があったときに数式を直す必要が出てきます。見出し名で指定しておけば、見出しが変わらない限り壊れません。</p>



<h3 class="wp-block-heading"><span id="toc9">条件（第3引数）</span></h3>



<p class="wp-block-paragraph">条件範囲には、<strong>見出し行と条件行の2行以上のセル範囲</strong>を指定します。これがDMAX関数の最大の特徴です。</p>



<p class="wp-block-paragraph">条件範囲は次のセクションで詳しく説明しますが、ポイントは「見出し+条件値」が必ず2行ペアで必要ということです。1行だけや、見出しなしで条件値だけを書くとうまく動きません。</p>



<p class="wp-block-paragraph"><strong>TIP</strong></p>



<p class="wp-block-paragraph">フィールドに列番号を使う場合、データベース範囲の左端が1です。シートのA列が1とは限らないので注意してください。たとえばデータベースをC1:F100と指定した場合、C列が1・D列が2・E列が3になります。</p>



<h2 class="wp-block-heading"><span id="toc10">DMAX関数の基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc11">サンプルデータ</span></h3>



<p class="wp-block-paragraph">次のような売上データを使って説明します。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th></tr></thead><tbody><tr><td>1</td><td>部署</td><td>担当者</td><td>商品</td><td>金額</td></tr><tr><td>2</td><td>営業部</td><td>田中</td><td>ノートPC</td><td>150000</td></tr><tr><td>3</td><td>総務部</td><td>鈴木</td><td>プリンター</td><td>35000</td></tr><tr><td>4</td><td>営業部</td><td>佐藤</td><td>モニター</td><td>48000</td></tr><tr><td>5</td><td>経理部</td><td>高橋</td><td>ノートPC</td><td>150000</td></tr><tr><td>6</td><td>営業部</td><td>田中</td><td>キーボード</td><td>8000</td></tr><tr><td>7</td><td>総務部</td><td>伊藤</td><td>モニター</td><td>48000</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc12">単一条件の書き方（AND条件の基本）</span></h3>



<p class="wp-block-paragraph">DMAX関数の条件は、<strong>別のセル範囲</strong>に書きます。ここが<a href="https://mashukabu.com/spreadsheet-maxifs-function/">MAXIFS関数</a>との大きな違いです。</p>



<p class="wp-block-paragraph">条件範囲は次のルールで作ります。</p>



<ul class="wp-block-list"><li><strong>1行目に見出しを書く</strong> — データベースの見出しと完全に同じ文字列を使う</li><li><strong>2行目に条件値を書く</strong> — 一致させたい値を入力する</li></ul>



<p class="wp-block-paragraph">たとえば「営業部」の金額で最大値を求めたい場合、シートの空いているエリア（たとえばF1:F2）に次のように書きます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>F</th></tr></thead><tbody><tr><td>1</td><td>部署</td></tr><tr><td>2</td><td>営業部</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">数式はこうなります。</p>



<pre class="wp-block-code"><code>=DMAX(A1:D7, &quot;金額&quot;, F1:F2)</code></pre>



<p class="wp-block-paragraph">結果は <strong>150000</strong> です。営業部の3件（150000、48000、8000）のうち最も大きい値が返されます。</p>



<p class="wp-block-paragraph"><strong>TIP</strong></p>



<p class="wp-block-paragraph">条件範囲の見出しは、データベースの見出しと1文字でも違うとエラーや「結果が0」の原因になります。半角スペースが混ざる・全角と半角が混在する・末尾に改行が入るなど、目視で気づきにくいパターンも多いので、コピー&ペーストで作るのが確実です。</p>



<h3 class="wp-block-heading"><span id="toc13">比較演算子を使った条件</span></h3>



<p class="wp-block-paragraph">条件値には比較演算子も使えます。</p>



<figure class="wp-block-table"><table><thead><tr><th>条件値の書き方</th><th>意味</th></tr></thead><tbody><tr><td>営業部</td><td>「営業部」と完全一致</td></tr><tr><td><code>>=50000</code></td><td>50,000以上</td></tr><tr><td><code><>営業部</code></td><td>「営業部」以外</td></tr><tr><td><code>>=2024/4/1</code></td><td>2024年4月1日以降（日付）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">たとえば「金額が50,000未満」のレコードのうち最大値を求めたい場合は、条件範囲をこう書きます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>F</th></tr></thead><tbody><tr><td>1</td><td>金額</td></tr><tr><td>2</td><td><code><50000</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">このとき数式は <code>=DMAX(A1:D7, "金額", F1:F2)</code> のままです。結果は <strong>48000</strong> になります。50,000未満の最大値であるモニター（48000）が返されます。</p>



<p class="wp-block-paragraph"><strong>TIP</strong></p>



<p class="wp-block-paragraph">比較演算子はセルに<strong>そのまま入力</strong>します。シングルクォートやダブルクォートで囲む必要はありません。<code><50000</code> とセルに入力するだけで条件として認識されます。</p>



<h2 class="wp-block-heading"><span id="toc14">DMAX関数の使い方｜AND条件・OR条件の書き分け</span></h2>



<p class="wp-block-paragraph">DMAX関数の本領は、複数条件を扱えることです。AND条件とOR条件の書き分けは、<strong>「同じ行に書く」か「別の行に書く」か</strong>で決まります。</p>



<h3 class="wp-block-heading"><span id="toc15">AND条件（同じ行に並べる）</span></h3>



<p class="wp-block-paragraph">複数の条件を<strong>すべて満たす</strong>レコードに絞り込むのがAND条件です。条件範囲の同じ行に条件を横並びに書きます。</p>



<p class="wp-block-paragraph">たとえば「営業部 かつ 金額50,000以上」の最大値を求めたい場合、条件範囲をこう書きます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>F</th><th>G</th></tr></thead><tbody><tr><td>1</td><td>部署</td><td>金額</td></tr><tr><td>2</td><td>営業部</td><td><code>>=50000</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">数式は次のとおりです。</p>



<pre class="wp-block-code"><code>=DMAX(A1:D7, &quot;金額&quot;, F1:G2)</code></pre>



<p class="wp-block-paragraph">結果は <strong>150000</strong> です。営業部かつ50,000以上の条件を満たす2件（150000、ノートPC）のうち最大値が返ります。</p>



<h3 class="wp-block-heading"><span id="toc16">OR条件（別の行に並べる）</span></h3>



<p class="wp-block-paragraph">複数の条件のうち<strong>いずれか1つを満たせばよい</strong>のがOR条件です。条件範囲の別々の行に条件を縦並びに書きます。</p>



<p class="wp-block-paragraph">たとえば「営業部 または 総務部」の最大値を求めたい場合は次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>F</th></tr></thead><tbody><tr><td>1</td><td>部署</td></tr><tr><td>2</td><td>営業部</td></tr><tr><td>3</td><td>総務部</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">数式はこうなります。</p>



<pre class="wp-block-code"><code>=DMAX(A1:D7, &quot;金額&quot;, F1:F3)</code></pre>



<p class="wp-block-paragraph">結果は <strong>150000</strong>（営業部のノートPC）です。営業部または総務部のレコードすべてを対象とした最大値が返ります。</p>



<h3 class="wp-block-heading"><span id="toc17">AND+OR の複合条件</span></h3>



<p class="wp-block-paragraph">「営業部で50,000以上」または「総務部で30,000以上」のような複合条件も書けます。AND条件を行ごとに書き、それを縦に並べるとOR条件として解釈されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>F</th><th>G</th></tr></thead><tbody><tr><td>1</td><td>部署</td><td>金額</td></tr><tr><td>2</td><td>営業部</td><td><code>>=50000</code></td></tr><tr><td>3</td><td>総務部</td><td><code>>=30000</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">数式は <code>=DMAX(A1:D7, "金額", F1:G3)</code> で、結果は <strong>150000</strong> です。営業部の150000・48000と総務部の35000・48000が候補となり、その中の最大値が返ります。</p>



<p class="wp-block-paragraph"><strong>NOTE</strong></p>



<p class="wp-block-paragraph">AND条件は「列方向」、OR条件は「行方向」と覚えると間違えにくくなります。横並びはAND、縦並びはORという視覚的なルールです。</p>



<h2 class="wp-block-heading"><span id="toc18">比較演算子・ワイルドカードで高度な条件を指定する</span></h2>



<p class="wp-block-paragraph">DMAX関数の条件範囲では、完全一致だけでなく比較演算子・ワイルドカードを使った柔軟な条件指定ができます。</p>



<h3 class="wp-block-heading"><span id="toc19">比較演算子の早見表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>演算子</th><th>意味</th><th>記入例</th></tr></thead><tbody><tr><td><code>=</code></td><td>等しい（完全一致は省略可）</td><td><code>=営業部</code></td></tr><tr><td><code>></code></td><td>より大きい</td><td><code>>50000</code></td></tr><tr><td><code><</code></td><td>より小さい</td><td><code><50000</code></td></tr><tr><td><code>>=</code></td><td>以上</td><td><code>>=50000</code></td></tr><tr><td><code><=</code></td><td>以下</td><td><code><=50000</code></td></tr><tr><td><code><></code></td><td>等しくない</td><td><code><>営業部</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">数値だけでなく日付にも使えます。<code>>=2024/4/1</code> のように書けば「2024年4月1日以降」と解釈されます。</p>



<h3 class="wp-block-heading"><span id="toc20">ワイルドカードの早見表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>記号</th><th>意味</th><th>記入例</th></tr></thead><tbody><tr><td><code>*</code></td><td>0文字以上の任意の文字列</td><td><code>ノート*</code>（「ノート」で始まるすべて）</td></tr><tr><td><code>?</code></td><td>任意の1文字</td><td><code>?ート</code>（2文字目から「ート」）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">たとえば「商品名が『ノート』で始まる」レコードの最大値を求めたい場合、条件範囲をこう書きます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>F</th></tr></thead><tbody><tr><td>1</td><td>商品</td></tr><tr><td>2</td><td><code>ノート*</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">数式は <code>=DMAX(A1:D7, "金額", F1:F2)</code> で、結果は <strong>150000</strong>（ノートPC）です。</p>



<p class="wp-block-paragraph"><strong>TIP</strong></p>



<p class="wp-block-paragraph">完全一致と部分一致を切り替えたい場合、完全一致は単に「営業部」と書き、部分一致は「営業<em>」のように <code></em></code> を付けるだけです。Excelでは <code>="=営業部"</code> のような特殊記法が必要なケースもありますが、Googleスプレッドシートのほうがシンプルに書けます。</p>



<h2 class="wp-block-heading"><span id="toc21">DMAX関数 vs MAX関数 vs MAXIFS関数の使い分け</span></h2>



<p class="wp-block-paragraph">条件付きで最大値を取る方法は、DMAX・MAX・MAXIFSの3つから選べます。場面ごとの使い分けを整理しておきます。</p>



<h3 class="wp-block-heading"><span id="toc22">3関数の比較表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>MAX</th><th>MAXIFS</th><th>DMAX</th></tr></thead><tbody><tr><td>条件指定</td><td>不可</td><td>AND条件のみ（127ペアまで）</td><td>AND・OR・複合すべて可</td></tr><tr><td>条件の書き方</td><td>不要</td><td>数式内に範囲・条件をペア指定</td><td>条件範囲（表形式）で指定</td></tr><tr><td>条件の切り替え</td><td>数式を書き換える</td><td>数式の引数を書き換える</td><td>条件セルを書き換える</td></tr><tr><td>ワイルドカード</td><td>不要</td><td><code>*</code>・<code>?</code> 使用可</td><td><code>*</code>・<code>?</code> 使用可</td></tr><tr><td>OR条件</td><td>不可</td><td><code>=MAX(MAXIFS, MAXIFS)</code> で代用</td><td>条件範囲の別行に書くだけ</td></tr><tr><td>数式の可読性</td><td>高（範囲のみ）</td><td>中（条件が増えると長くなる）</td><td>高（数式は短い・条件は表で確認）</td></tr><tr><td>ダッシュボード向き</td><td>×</td><td>△</td><td>◎</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc23">MAX関数を選ぶべきケース</span></h3>



<p class="wp-block-paragraph">条件がいっさい不要で「範囲全体の最大値」だけ知りたい場面はMAX関数が最短です。<code>=MAX(D2:D7)</code> のように1引数で済みます。</p>



<h3 class="wp-block-heading"><span id="toc24">MAXIFS関数を選ぶべきケース</span></h3>



<p class="wp-block-paragraph">条件が<strong>固定</strong>で、AND条件しか使わないならMAXIFSが扱いやすいです。たとえば月次レポートで「営業部の今月の最高額」のように条件が決まっているケースを考えます。この場合、<code>=MAXIFS(D2:D7, A2:A7, "営業部")</code> のように1セルで完結します。条件範囲を別途用意する手間がありません。</p>



<h3 class="wp-block-heading"><span id="toc25">DMAX関数を選ぶべきケース</span></h3>



<p class="wp-block-paragraph">次のいずれかに該当するならDMAX関数を選びましょう。</p>



<ul class="wp-block-list"><li>条件をドロップダウンなどで<strong>頻繁に切り替える</strong>(ダッシュボード用途)</li><li><strong>OR条件</strong>を使いたい</li><li>複数のAND条件・OR条件を組み合わせた<strong>複合条件</strong>を使いたい</li><li>集計条件をシート上で<strong>見える化したい</strong>(条件範囲が「いま何で絞り込んでいるか」のドキュメントになる)</li></ul>



<p class="wp-block-paragraph"><strong>NOTE</strong></p>



<p class="wp-block-paragraph">「ダッシュボードはDMAX、定型レポートはMAXIFS」と覚えると判断が早くなります。DMAXは条件範囲をシート上に見せられるので、レビュー時に「何で絞り込んでるんだっけ？」となりにくいメリットがあります。</p>



<h2 class="wp-block-heading"><span id="toc26">DMAX関数とDMIN関数の組み合わせ（最大値・最小値の同時集計）</span></h2>



<p class="wp-block-paragraph">DMAX関数とDMIN関数は引数の構造がまったく同じで、結果が最大値か最小値かだけが違います。レポートで「最高額と最低額を並べたい」ときは、同じ条件範囲を共有して2つの関数を並べるのが定番パターンです。</p>



<h3 class="wp-block-heading"><span id="toc27">同じ条件範囲を共有する例</span></h3>



<p class="wp-block-paragraph">「営業部の最高金額と最低金額」を並べて表示する例です。条件範囲を F1:F2 に作っておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>F</th></tr></thead><tbody><tr><td>1</td><td>部署</td></tr><tr><td>2</td><td>営業部</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">最高額と最低額のセルにそれぞれ次の数式を書きます。</p>



<pre class="wp-block-code"><code>=DMAX(A1:D7, &quot;金額&quot;, F1:F2)
=DMIN(A1:D7, &quot;金額&quot;, F1:F2)</code></pre>



<p class="wp-block-paragraph">条件セル（F2）を「総務部」に書き換えると、最高額と最低額が同時に切り替わります。ダッシュボードでドロップダウンと連動させると、部署選択1つで集計値がまとめて更新される作りになります。</p>



<h3 class="wp-block-heading"><span id="toc28">最大値と最小値の差（レンジ）を求める</span></h3>



<p class="wp-block-paragraph">「最高額と最低額の差」を1セルで求めたい場合は、DMAXとDMINを引き算するだけです。</p>



<pre class="wp-block-code"><code>=DMAX(A1:D7, &quot;金額&quot;, F1:F2) - DMIN(A1:D7, &quot;金額&quot;, F1:F2)</code></pre>



<p class="wp-block-paragraph">価格帯のばらつきや売上のレンジを可視化したいレポートで便利です。</p>



<p class="wp-block-paragraph"><strong>TIP</strong></p>



<p class="wp-block-paragraph">DMAX/DMINと同じ条件範囲を共有することで、<a href="https://mashukabu.com/spreadsheet-dsum-function/">DSUM</a>（合計）・<a href="https://mashukabu.com/spreadsheet-daverage-function/">DAVERAGE</a>（平均）・<a href="https://mashukabu.com/spreadsheet-dcounta-function/">DCOUNTA</a>（件数）も同時に並べられます。1つの条件で「件数・合計・平均・最大・最小」を一覧化するサマリ表が作れます。</p>



<h2 class="wp-block-heading"><span id="toc29">よくあるエラー（#VALUE! / #NUM!）と対処法</span></h2>



<p class="wp-block-paragraph">DMAX関数でよく遭遇するエラーと原因を整理します。</p>



<h3 class="wp-block-heading"><span id="toc30">#VALUE! エラー</span></h3>



<p class="wp-block-paragraph"><strong>原因1：フィールドの列名がデータベースの見出しと一致しない</strong></p>



<p class="wp-block-paragraph"><code>"金額 "</code> のように末尾にスペースが入っている、<code>"金 額"</code> のように全角スペースが入っているなど、見た目では気づきにくいパターンが多いです。データベース範囲の見出しセルから値をコピーして使うのが確実です。</p>



<p class="wp-block-paragraph"><strong>原因2：条件範囲の見出しがデータベースの見出しと一致しない</strong></p>



<p class="wp-block-paragraph">条件範囲の1行目（ラベル行）にミスタイプがあるとエラーになります。こちらもコピー&ペーストで作るのが鉄則です。</p>



<p class="wp-block-paragraph"><strong>原因3：データベース範囲の指定ミス</strong></p>



<p class="wp-block-paragraph">見出し行を含まずにデータ部分だけを指定すると <code>#VALUE!</code> になる場合があります。<code>A2:D7</code> ではなく <code>A1:D7</code> のように見出し行から含めて指定してください。</p>



<h3 class="wp-block-heading"><span id="toc31">#NUM! エラー</span></h3>



<p class="wp-block-paragraph"><strong>原因：条件に合致するレコードが0件</strong></p>



<p class="wp-block-paragraph">該当データが存在しない条件を指定すると <code>#NUM!</code> が返ります。たとえば「営業部 かつ 金額500,000以上」のように、実データに存在しない条件を組むと発生します。</p>



<p class="wp-block-paragraph">エラーを回避したい場合は、IFERROR関数で包んで代替値を返す方法があります。</p>



<pre class="wp-block-code"><code>=IFERROR(DMAX(A1:D7, &quot;金額&quot;, F1:G2), &quot;該当なし&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc32">結果が「0」になる</span></h3>



<p class="wp-block-paragraph">エラーではなく<strong>0が返る</strong>場合は、次の3つを疑ってください。</p>



<ol class="wp-block-list"><li><strong>見出しの不一致</strong>：データベース見出しと条件範囲見出しが完全一致していない（最頻出）</li><li><strong>フィールド列に数値がない</strong>：DMAXは数値列を対象とするため、文字列列を指定すると0が返る</li><li><strong>条件範囲に空白行が混入</strong>：条件範囲の中に空白行があると「すべて一致」と解釈され、想定外の値が返る</li></ol>



<p class="wp-block-paragraph"><strong>NOTE</strong></p>



<p class="wp-block-paragraph">「結果が0」のトラブルは、9割が見出しの不一致です。エラーメッセージが出ないので原因に気づきにくく、最も時間を吸われる落とし穴です。条件範囲の見出しは必ずデータベースからコピー&ペーストで作りましょう。</p>



<h2 class="wp-block-heading"><span id="toc33">DMAX関数のよくある質問（FAQ）</span></h2>



<h3 class="wp-block-heading"><span id="toc34">Q1. DMAX関数とMAXIFS関数、結局どっちを使えばいい？</span></h3>



<p class="wp-block-paragraph">条件を<strong>頻繁に切り替える</strong>ならDMAX、<strong>条件が固定</strong>ならMAXIFSです。たとえば部署別ダッシュボードのようにドロップダウンで条件を切り替える作りならDMAXが向いています。一方、月初の定型レポートで「営業部の今月の最高額」のように条件が決まっているならMAXIFSがシンプルです。</p>



<p class="wp-block-paragraph">OR条件が必要なときはDMAX一択になります。MAXIFSはAND条件しか直接書けないので、OR条件は数式を分けるか配列数式に頼る必要があります。</p>



<h3 class="wp-block-heading"><span id="toc35">Q2. DMAX関数で文字列の最大値（辞書順で最後）は取れる？</span></h3>



<p class="wp-block-paragraph">取れません。DMAX関数は<strong>数値の最大値</strong>を返す関数です。文字列の列を指定すると0が返ります。</p>



<p class="wp-block-paragraph">辞書順での最大値を取りたい場合は、データを並べ替えてからINDEXやFILTER関数で取得するか、SORT関数と組み合わせる方法があります。</p>



<h3 class="wp-block-heading"><span id="toc36">Q3. 日付列の最大値（最新日付）はDMAX関数で取れる？</span></h3>



<p class="wp-block-paragraph">取れます。スプレッドシートの日付は内部的にはシリアル値（数値）なので、DMAX関数で問題なく動作します。「営業部の最新の取引日」のような集計に便利です。</p>



<p class="wp-block-paragraph">ただし表示形式が「日付」になっていないと、結果がシリアル値（45000のような数値）で表示されます。結果セルの表示形式を「日付」に変えてください。</p>



<h3 class="wp-block-heading"><span id="toc37">Q4. 空白セルがある列でDMAX関数を使うとどうなる？</span></h3>



<p class="wp-block-paragraph">空白セルは無視されます。DMAX関数は数値が入っているセルだけを集計対象にするので、空白や文字列が混ざっていても結果に影響しません。</p>



<p class="wp-block-paragraph">ただし<strong>条件範囲のほうに空白行が混ざる</strong>と「すべて一致」と解釈されてしまうので、条件範囲は空白行を含めないようにしてください。</p>



<h3 class="wp-block-heading"><span id="toc38">Q5. 別シートのデータをDMAX関数で集計できる？</span></h3>



<p class="wp-block-paragraph">できます。データベースの引数にシート名を含めて指定するだけです。</p>



<pre class="wp-block-code"><code>=DMAX('売上データ'!A1:D100, &quot;金額&quot;, F1:F2)</code></pre>



<p class="wp-block-paragraph">シート名にスペースや日本語が含まれる場合は、シングルクォーテーション（<code>'</code>）で囲むのがポイントです。</p>



<h3 class="wp-block-heading"><span id="toc39">Q6. DMAX関数でN番目に大きい値は取れる？</span></h3>



<p class="wp-block-paragraph">取れません。DMAX関数は最大値（1番大きい値）専用です。</p>



<p class="wp-block-paragraph">N番目に大きい値が必要な場合は、LARGE関数を使うか、QUERY関数でORDER BYを使ってソートしてから取得する方法があります。条件付きでN番目を取りたい場合は、FILTER関数とLARGE関数を組み合わせるのが定番です。</p>



<h3 class="wp-block-heading"><span id="toc40">Q7. 同じ最大値が複数あるとき、どのレコードかを知るには？</span></h3>



<p class="wp-block-paragraph">DMAX関数は「最大値そのもの」しか返さないので、「どの担当者か」「どの商品か」までは取れません。</p>



<p class="wp-block-paragraph">最大値を持つレコードの他の列の値を取りたい場合は、<a href="https://mashukabu.com/spreadsheet-dget-function/">DGET関数</a>や、INDEX+MATCHの組み合わせを使います。「営業部の最高額の担当者名」のような集計は、DMAXで最高額を求め、その値を条件にDGETで担当者名を引く、という二段構えにするのが実務的です。</p>



<h3 class="wp-block-heading"><span id="toc41">Q8. ARRAYFORMULAでDMAXを一気に複数行へ展開できる？</span></h3>



<p class="wp-block-paragraph">できません。DMAX関数は<strong>単一値を返すスカラー関数</strong>なので、ARRAYFORMULAで配列展開できない仕様です。</p>



<p class="wp-block-paragraph">部署ごとなど複数の集計結果を一気に並べたい場合は、QUERY関数の <code>GROUP BY</code> を使うか、各行に個別のDMAX数式を入れる必要があります。「部署一覧をユニーク化 → 各行にDMAX」というパターンが実務でよく使われます。</p>



<h3 class="wp-block-heading"><span id="toc42">Q9. 条件範囲とデータベース範囲を同じシートに置く必要はある？</span></h3>



<p class="wp-block-paragraph">ありません。条件範囲は別シートに置いてもまったく問題なく動きます。</p>



<p class="wp-block-paragraph">ただし可読性の面では、データベースと条件範囲は同じシートにまとめておくほうがメンテナンスしやすいです。ダッシュボードのように「表示シートと集計シートを分けたい」場合のみ、別シート参照を使うとよいでしょう。</p>



<h2 class="wp-block-heading"><span id="toc43">まとめ｜条件付き最大値はDMAXで一発</span></h2>



<p class="wp-block-paragraph">DMAX関数は、データベース形式の表から条件に合うデータの最大値を求める関数です。フィルタを触らずに条件付き集計ができるので、共有シートやダッシュボードと相性抜群です。</p>



<p class="wp-block-paragraph">ポイントを整理します。</p>



<ul class="wp-block-list"><li>構文は <code>=DMAX(データベース, フィールド, 条件)</code> で、引数は3つすべて必須</li><li>条件は数式内ではなく<strong>セル範囲（条件範囲）に書く</strong>のが特徴</li><li>条件範囲は「見出し行+条件行」のセットで作る</li><li><strong>AND条件は同じ行</strong>に横並び、<strong>OR条件は別の行</strong>に縦並びで書く</li><li>条件セルの値を変えるだけで集計対象を切り替えられる</li><li>比較演算子（<code>></code>・<code><</code>・<code>>=</code>・<code><=</code>・<code><></code>）やワイルドカード（<code>*</code>・<code>?</code>）も使える</li><li>全体の最大値はMAX、AND条件のみならMAXIFS、複雑な条件やOR条件・ダッシュボード用途はDMAXが最適</li><li>DMINと組み合わせれば「最高額・最低額・レンジ」を同じ条件範囲で一気に集計できる</li><li>結果が0になるときは「見出しの不一致」をまずチェック</li><li><code>#NUM!</code> は該当データ0件、<code>#VALUE!</code> は引数や見出しの問題</li><li>最大値を持つレコードの他の列が知りたいときはDGET関数と組み合わせる</li></ul>



<p class="wp-block-paragraph">まずは簡単な表で <code>=DMAX(A1:D7, "金額", F1:F2)</code> から試してみてください。条件セルを書き換えて結果が変わる感覚をつかめば、データベース関数全体への理解がぐっと深まりますよ。</p>



<h3 class="wp-block-heading"><span id="toc44">関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-dmin-function/">スプレッドシートのDMIN関数の使い方｜条件に合う最小値</a></li><li><a href="https://mashukabu.com/spreadsheet-dget-function/">スプレッドシートのDGET関数の使い方｜条件に合う1つの値</a></li><li><a href="https://mashukabu.com/spreadsheet-dcounta-function/">スプレッドシートのDCOUNTA関数の使い方｜文字列も含めて条件付きカウント</a></li><li><a href="https://mashukabu.com/spreadsheet-dsum-function/">スプレッドシートのDSUM関数の使い方｜条件に合う合計</a></li><li><a href="https://mashukabu.com/spreadsheet-daverage-function/">スプレッドシートのDAVERAGE関数の使い方｜条件に合う平均</a></li><li><a href="https://mashukabu.com/spreadsheet-max-function/">スプレッドシートのMAX関数の使い方｜最大値を一発取得</a></li><li><a href="https://mashukabu.com/spreadsheet-maxifs-function/">スプレッドシートのMAXIFS関数の使い方｜条件付き最大値</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-dmax-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのMAXIFS関数の使い方｜条件付き最大値</title>
		<link>https://mashukabu.com/spreadsheet-maxifs-function/</link>
					<comments>https://mashukabu.com/spreadsheet-maxifs-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 18 Mar 2026 11:24:45 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[IFS系関数]]></category>
		<category><![CDATA[MAXIFS関数]]></category>
		<category><![CDATA[MINIFS関数]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[データ集計]]></category>
		<category><![CDATA[条件付き最大値]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4051</guid>

					<description><![CDATA[スプレッドシートのMAXIFS関数の使い方を基本構文から複数条件の応用例まで解説。MINIFSとのセット使いやIFS系関数の共通ルール、よくあるエラーの対処法もまとめました。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「部署ごとの最高売上を出したいのに、MAX関数だと全体の最大値しか取れない」。そんな経験はありませんか？</p>



<p class="wp-block-paragraph">条件を指定できないと、フィルターで絞ってから手作業で確認する羽目になります。データ量が多いほど手間がかかりますよね。</p>



<p class="wp-block-paragraph">MAXIFS関数を使えば、条件付きで最大値を取り出せます。この記事では基本の書き方から複数条件の応用例まで丁寧に解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">MAXIFS関数とは？条件付きで最大値を返す関数</a><ol><li><a href="#toc2" tabindex="0">基本構文</a></li><li><a href="#toc3" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc4" tabindex="0">基本的な使い方｜1つの条件で最大値を取り出す</a><ol><li><a href="#toc5" tabindex="0">部署ごとの最高売上を求める</a></li></ol></li><li><a href="#toc6" tabindex="0">複数条件での使い方｜2つ以上の条件を組み合わせる</a><ol><li><a href="#toc7" tabindex="0">部署 × 月で絞り込む</a></li><li><a href="#toc8" tabindex="0">比較演算子を使う</a></li><li><a href="#toc9" tabindex="0">ワイルドカードを使う</a></li></ol></li><li><a href="#toc10" tabindex="0">MINIFSとのセット使い｜最大値と最小値を同時に把握</a></li><li><a href="#toc11" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc12" tabindex="0">結果が0になる（条件に一致するデータがない）</a></li><li><a href="#toc13" tabindex="0">#VALUE! エラー（範囲サイズの不一致）</a></li></ol></li><li><a href="#toc14" tabindex="0">IFS系関数の引数は同じパターン｜一度覚えれば応用できる</a></li><li><a href="#toc15" tabindex="0">まとめ</a><ol><li><a href="#toc16" tabindex="0">この記事のポイント</a></li><li><a href="#toc17" tabindex="0">次のステップ：関連する集計関数</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">MAXIFS関数とは？条件付きで最大値を返す関数</span></h2>



<p class="wp-block-paragraph">MAXIFS関数は、条件に合うデータだけを対象にして<strong>最大値</strong>を返す関数です。読み方は「マックスイフス」。Maximum + If + S（複数条件）が名前の由来です。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-max-function/">MAX関数</a>は「範囲全体の最大値」を返す関数です。一方MAXIFSは「条件を満たすデータの最大値」を返します。たとえば「東京支店だけの最高売上」を取り出せます。</p>



<h3 class="wp-block-heading"><span id="toc2">基本構文</span></h3>



<pre class="wp-block-code"><code>=MAXIFS(最大値範囲, 条件範囲1, 条件1, [条件範囲2, 条件2, ...])</code></pre>



<h3 class="wp-block-heading"><span id="toc3">引数の説明</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>最大値範囲</td><td>必須</td><td>最大値を求める対象の数値範囲</td></tr><tr><td>条件範囲1</td><td>必須</td><td>条件を調べるセル範囲</td></tr><tr><td>条件1</td><td>必須</td><td>抽出条件（文字列・数値・比較式）</td></tr><tr><td>条件範囲2, 条件2</td><td>任意</td><td>追加の条件（最大127組まで）</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>引数の順番は<a href="https://mashukabu.com/spreadsheet-sumifs-function/">SUMIFS関数</a>と同じです。「対象範囲が先頭、その後に条件ペア」と覚えてください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc4">基本的な使い方｜1つの条件で最大値を取り出す</span></h2>



<p class="wp-block-paragraph">ここからはサンプルデータを使って説明します。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/spreadsheet-sumif-function_01_data_sample-table.png" alt="01 data sample table" /></figure>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A列（担当）</th><th>B列（部署）</th><th>C列（月）</th><th>D列（売上）</th></tr></thead><tbody><tr><td>2行目</td><td>田中</td><td>東京</td><td>1月</td><td>850,000</td></tr><tr><td>3行目</td><td>鈴木</td><td>大阪</td><td>1月</td><td>720,000</td></tr><tr><td>4行目</td><td>佐藤</td><td>東京</td><td>1月</td><td>930,000</td></tr><tr><td>5行目</td><td>田中</td><td>東京</td><td>2月</td><td>780,000</td></tr><tr><td>6行目</td><td>鈴木</td><td>大阪</td><td>2月</td><td>880,000</td></tr><tr><td>7行目</td><td>佐藤</td><td>東京</td><td>2月</td><td>1,050,000</td></tr><tr><td>8行目</td><td>田中</td><td>東京</td><td>3月</td><td>920,000</td></tr><tr><td>9行目</td><td>鈴木</td><td>大阪</td><td>3月</td><td>750,000</td></tr><tr><td>10行目</td><td>佐藤</td><td>東京</td><td>3月</td><td>980,000</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc5">部署ごとの最高売上を求める</span></h3>



<p class="wp-block-paragraph">東京支店の最高売上額を取り出してみましょう。</p>



<pre class="wp-block-code"><code>=MAXIFS(D2:D10, B2:B10, &quot;東京&quot;)</code></pre>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/02_formula_maxifs-basic.png" alt="02 formula maxifs basic" /></figure>



<p class="wp-block-paragraph">結果は <strong>1,050,000</strong> です。B列が「東京」のデータ（6件）のうち、D列の最大値を返しています。</p>



<p class="wp-block-paragraph">数式の読み方はこうです。</p>



<ul class="wp-block-list"><li>D2:D10 → 最大値を求める範囲（売上列）</li><li>B2:B10 → 条件を調べる範囲（部署列）</li><li>&#8220;東京&#8221; → 条件（部署が東京）</li></ul>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-maxifs-function/03_result_maxifs-basic.png/">_images/spreadsheet-maxifs-function/03_result_maxifs-basic.png</a></p>



<p class="wp-block-paragraph">大阪の最高売上も同様に求められます。</p>



<pre class="wp-block-code"><code>=MAXIFS(D2:D10, B2:B10, &quot;大阪&quot;)</code></pre>



<p class="wp-block-paragraph">結果は <strong>880,000</strong> です。</p>



<h2 class="wp-block-heading"><span id="toc6">複数条件での使い方｜2つ以上の条件を組み合わせる</span></h2>



<p class="wp-block-paragraph">MAXIFS関数は条件を追加するだけで複数条件に対応できます。</p>



<h3 class="wp-block-heading"><span id="toc7">部署 × 月で絞り込む</span></h3>



<p class="wp-block-paragraph">「東京支店の1月の最高売上」を求める場合です。</p>



<pre class="wp-block-code"><code>=MAXIFS(D2:D10, B2:B10, &quot;東京&quot;, C2:C10, &quot;1月&quot;)</code></pre>



<p class="wp-block-paragraph">結果は <strong>930,000</strong> です。部署が「東京」かつ月が「1月」のデータは田中（850,000）と佐藤（930,000）の2件。そのうち大きい方が返ります。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/04_result_maxifs-multi.png" alt="04 result maxifs multi" /></figure>



<h3 class="wp-block-heading"><span id="toc8">比較演算子を使う</span></h3>



<p class="wp-block-paragraph">「売上が80万円以上のデータのうち最大値」のような条件も書けます。</p>



<pre class="wp-block-code"><code>=MAXIFS(D2:D10, D2:D10, &quot;&gt;=800000&quot;)</code></pre>



<p class="wp-block-paragraph">結果は <strong>1,050,000</strong> です。比較演算子は条件をダブルクォーテーションで囲んでください。</p>



<p class="wp-block-paragraph">使える比較演算子は次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>演算子</th><th>意味</th><th>書き方の例</th></tr></thead><tbody><tr><td>>=</td><td>以上</td><td>&#8220;>=800000&#8221;</td></tr><tr><td><=</td><td>以下</td><td>&#8220;<=500000"</td></tr><tr><td>></td><td>より大きい</td><td>&#8220;>1000000&#8221;</td></tr><tr><td><</td><td>より小さい</td><td>&#8220;<100000"</td></tr><tr><td><></td><td>等しくない</td><td>&#8220;<>東京&#8221;</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc9">ワイルドカードを使う</span></h3>



<p class="wp-block-paragraph">条件にワイルドカード（*、?）を使った部分一致もできます。</p>



<pre class="wp-block-code"><code>=MAXIFS(D2:D10, A2:A10, &quot;田*&quot;)</code></pre>



<p class="wp-block-paragraph">この式は担当名が「田」で始まる人の最高売上を返します。結果は <strong>920,000</strong>（田中の3月売上）です。</p>



<h2 class="wp-block-heading"><span id="toc10">MINIFSとのセット使い｜最大値と最小値を同時に把握</span></h2>



<p class="wp-block-paragraph">MINIFS関数はMAXIFS関数の「最小値バージョン」です。構文はまったく同じで、返す値が最大値か最小値かの違いだけです。</p>



<pre class="wp-block-code"><code>=MAXIFS(D2:D10, B2:B10, &quot;東京&quot;)  → 1,050,000（最大値）
=MINIFS(D2:D10, B2:B10, &quot;東京&quot;)  → 780,000（最小値）</code></pre>



<p class="wp-block-paragraph">この2つをセットで使うと、部署ごとの「売上レンジ」がわかります。</p>



<pre class="wp-block-code"><code>=MAXIFS(D2:D10, B2:B10, &quot;東京&quot;) - MINIFS(D2:D10, B2:B10, &quot;東京&quot;)</code></pre>



<p class="wp-block-paragraph">結果は <strong>270,000</strong> です。最大値と最小値の差から、データのばらつきを把握できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>返す値</th><th>使いどころ</th></tr></thead><tbody><tr><td>MAXIFS</td><td>条件付き最大値</td><td>部署別の最高売上、最高点</td></tr><tr><td>MINIFS</td><td>条件付き最小値</td><td>部署別の最低売上、最低点</td></tr><tr><td>MAX</td><td>範囲全体の最大値</td><td>全データの最高値</td></tr><tr><td>MIN</td><td>範囲全体の最小値</td><td>全データの最低値</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc11">よくあるエラーと対処法</span></h2>



<p class="wp-block-paragraph">MAXIFS関数で困りやすいポイントを2つ紹介します。</p>



<h3 class="wp-block-heading"><span id="toc12">結果が0になる（条件に一致するデータがない）</span></h3>



<p class="wp-block-paragraph">MAXIFS関数は、条件に合うデータが1件もないと<strong>0</strong>を返します。</p>



<pre class="wp-block-code"><code>=MAXIFS(D2:D10, B2:B10, &quot;名古屋&quot;)</code></pre>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/05_error_zero.png" alt="05 error zero" /></figure>



<p class="wp-block-paragraph">サンプルデータに「名古屋」はないので、結果は <strong>0</strong> です。</p>



<p class="wp-block-paragraph">「0は正しい最大値なのか、それとも該当なしなのか」を区別したい場合はCOUNTIFS関数と組み合わせてください。</p>



<pre class="wp-block-code"><code>=IF(COUNTIFS(B2:B10, &quot;名古屋&quot;)=0, &quot;該当なし&quot;, MAXIFS(D2:D10, B2:B10, &quot;名古屋&quot;))</code></pre>



<h3 class="wp-block-heading"><span id="toc13">#VALUE! エラー（範囲サイズの不一致）</span></h3>



<p class="wp-block-paragraph">最大値範囲と条件範囲の行数が異なると#VALUE!エラーになります。</p>



<pre class="wp-block-code"><code>=MAXIFS(D2:D10, B2:B5, &quot;東京&quot;)  → #VALUE!</code></pre>



<p class="wp-block-paragraph">D2:D10は9行、B2:B5は4行なので不一致です。すべての範囲の行数を揃えてください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>IFS系関数に共通するルールです。SUMIFS・AVERAGEIFSでも同じエラーが起きます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc14">IFS系関数の引数は同じパターン｜一度覚えれば応用できる</span></h2>



<p class="wp-block-paragraph">MAXIFS関数の引数の順番は、他のIFS系関数と共通です。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>第1引数</th><th>第2引数</th><th>第3引数</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/spreadsheet-sumifs-function/">SUMIFS</a></td><td>合計範囲</td><td>条件範囲1</td><td>条件1</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-averageifs-function/">AVERAGEIFS</a></td><td>平均範囲</td><td>条件範囲1</td><td>条件1</td></tr><tr><td>MAXIFS</td><td>最大値範囲</td><td>条件範囲1</td><td>条件1</td></tr><tr><td>MINIFS</td><td>最小値範囲</td><td>条件範囲1</td><td>条件1</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-countifs-function/">COUNTIFS</a></td><td>条件範囲1</td><td>条件1</td><td>―</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">共通パターンは「<strong>対象範囲が先頭、その後に条件ペア</strong>」です。COUNTIFSだけは数えるだけなので対象範囲がありません。</p>



<p class="wp-block-paragraph">この構造を覚えておけば、新しいIFS系関数も迷わず使えますよ。</p>



<h2 class="wp-block-heading"><span id="toc15">まとめ</span></h2>



<p class="wp-block-paragraph">MAXIFS関数は「条件を指定して最大値を取り出す」関数です。MAXだけでは実現できなかった「部署別」「期間別」の最大値が、1つの数式で求められます。</p>



<h3 class="wp-block-heading"><span id="toc16">この記事のポイント</span></h3>



<ul class="wp-block-list"><li>構文は <code>=MAXIFS(最大値範囲, 条件範囲1, 条件1, ...)</code></li><li>条件ペアを追加するだけで複数条件にも対応</li><li>MINIFSとセットで使うと最大値・最小値を同時に把握できる</li><li>結果が0なら条件一致データなし、#VALUE!なら範囲サイズを確認</li><li>引数の並びはSUMIFS・AVERAGEIFSと同じ</li></ul>



<h3 class="wp-block-heading"><span id="toc17">次のステップ：関連する集計関数</span></h3>



<p class="wp-block-paragraph">MAXIFS関数の使い方がわかったら、同じIFS系の関数もあわせて覚えてみてください。引数の構造が同じなので、すぐに使いこなせるようになりますよ。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-sumifs-function/">スプレッドシートのSUMIFS関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-averageifs-function/">スプレッドシートのAVERAGEIFS関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-countifs-function/">スプレッドシートのCOUNTIFS関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-max-function/">スプレッドシートのMAX関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-maxifs-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのMAXIFS関数の使い方｜条件付き最大値を解説</title>
		<link>https://mashukabu.com/excel-function-howto-use-maxifs/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-maxifs/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 12 May 2022 12:33:35 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[MAXIFS関数]]></category>
		<category><![CDATA[MAX関数]]></category>
		<category><![CDATA[MINIFS関数]]></category>
		<category><![CDATA[SUMIFS関数]]></category>
		<category><![CDATA[条件付き最大値]]></category>
		<category><![CDATA[複数条件]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=1882</guid>

					<description><![CDATA[ExcelのMAXIFS関数で条件付き最大値を求める方法を解説。複数条件・ワイルドカード・日付の期間指定など実務5パターンをサンプルデータ付きで紹介。結果が0になるエラーの原因と対処法、MAX・MINIFS・SUMIFS関数との使い分けも詳しく説明します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「営業部だけの最高売上を知りたい」「東京支店の最大受注額は？」。条件を絞って最大値を調べたい場面、仕事でよく出てきますよね。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-max/">MAX関数</a>なら範囲全体の最大値を出せます。でも部署別や期間別に絞り込むことはできません。</p>



<p class="wp-block-paragraph">そんなときに使うのが<strong>MAXIFS関数</strong>です。この記事では基本の書き方から複数条件やワイルドカードの応用パターンまで解説します。「0になる」ときの対処法もカバーしています。</p>



<p class="wp-block-paragraph">この記事では、次のサンプルデータを使って解説を進めます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A列（社員名）</th><th>B列（部署）</th><th>C列（月）</th><th>D列（売上）</th></tr></thead><tbody><tr><td>2行目</td><td>田中</td><td>営業部</td><td>4月</td><td>850,000</td></tr><tr><td>3行目</td><td>鈴木</td><td>営業部</td><td>4月</td><td>620,000</td></tr><tr><td>4行目</td><td>佐藤</td><td>総務部</td><td>4月</td><td>480,000</td></tr><tr><td>5行目</td><td>高橋</td><td>営業部</td><td>5月</td><td>730,000</td></tr><tr><td>6行目</td><td>伊藤</td><td>総務部</td><td>5月</td><td>510,000</td></tr><tr><td>7行目</td><td>渡辺</td><td>営業部</td><td>5月</td><td>0</td></tr><tr><td>8行目</td><td>山本</td><td>総務部</td><td>6月</td><td>390,000</td></tr><tr><td>9行目</td><td>中村</td><td>営業部</td><td>6月</td><td>920,000</td></tr></tbody></table></figure>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-3" checked><label class="toc-title" for="toc-checkbox-3">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">MAXIFS関数とは？読み方と基本の仕組み</a></li><li><a href="#toc2" tabindex="0">MAXIFS関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">MAXIFS関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">条件に比較演算子を使う</a></li></ol></li><li><a href="#toc7" tabindex="0">MAXIFS関数の実務活用パターン</a><ol><li><a href="#toc8" tabindex="0">パターン1: 複数条件で最大値を求める</a></li><li><a href="#toc9" tabindex="0">パターン2: ワイルドカードで部分一致</a></li><li><a href="#toc10" tabindex="0">パターン3: 日付の期間指定で最大値を求める</a></li><li><a href="#toc11" tabindex="0">パターン4: 0以外の最大値を求める</a></li><li><a href="#toc12" tabindex="0">パターン5: INDEX+MAXIFS関数で最大値の行データを取得する</a></li></ol></li><li><a href="#toc13" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc14" tabindex="0">結果が「0」になるときの対処法</a></li><li><a href="#toc15" tabindex="0">#VALUE! エラーが出るとき</a></li></ol></li><li><a href="#toc16" tabindex="0">似た関数との違い・使い分け</a><ol><li><a href="#toc17" tabindex="0">MAX関数との違い</a></li><li><a href="#toc18" tabindex="0">MINIFS関数との違い</a></li><li><a href="#toc19" tabindex="0">SUMIFS関数との違い</a></li></ol></li><li><a href="#toc20" tabindex="0">まとめ</a><ol><li><a href="#toc21" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">MAXIFS関数とは？読み方と基本の仕組み</span></h2>



<p class="wp-block-paragraph">MAXIFS関数は、<strong>条件を満たすデータだけに絞って最大値を返す</strong>関数です。</p>



<p class="wp-block-paragraph">読み方は「<strong>マックスイフエス関数</strong>」です。MAX（最大値）+ IF（もし）+ S（複数形）で、「複数のもしで最大値を求める」という意味になっています。</p>



<p class="wp-block-paragraph">サンプルデータで言えば、MAXIFS関数を使うと「営業部だけの最大売上」を一発で取り出せます。フィルターで絞り込んでからMAX関数を使う手間がなくなりますよ。</p>



<p class="wp-block-paragraph">対応バージョンはExcel 2019以降とMicrosoft 365です。Excel Web AppおよびGoogleスプレッドシートでも同じ書き方で使えます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>Excel 2016以前をお使いの場合は、配列数式 =MAX(IF(条件範囲=条件, 最大範囲)) をCtrl+Shift+Enterで入力する方法で代用できます。</p></blockquote>



<figure class="wp-block-table"><table><thead><tr><th>入力</th><th>出力</th></tr></thead><tbody><tr><td>最大値を求めたい範囲 + 条件（最大126組）</td><td>条件を満たす行の中で一番大きい数値（1つ）</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc2">MAXIFS関数の書き方（構文と引数）</span></h2>



<h3 class="wp-block-heading"><span id="toc3">基本構文</span></h3>



<pre class="wp-block-code"><code>=MAXIFS(最大範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)</code></pre>



<h3 class="wp-block-heading"><span id="toc4">引数の説明</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>最大範囲</td><td>必須</td><td>最大値を求めたい数値が入っている範囲</td></tr><tr><td>条件範囲1</td><td>必須</td><td>1つ目の条件を判定する範囲</td></tr><tr><td>条件1</td><td>必須</td><td>1つ目の条件（例: &#8220;営業部&#8221;）</td></tr><tr><td>条件範囲2</td><td>省略可</td><td>2つ目の条件を判定する範囲</td></tr><tr><td>条件2</td><td>省略可</td><td>2つ目の条件</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">条件のペア（条件範囲と条件）は最大126組まで追加できます。条件はすべてAND条件（かつ）で評価されます。</p>



<p class="wp-block-paragraph">大事なポイントが2つあります。</p>



<ul class="wp-block-list"><li><strong>最大範囲が第1引数</strong>にくること。<a href="https://mashukabu.com/excel-function-howto-use-sumifs/">SUMIFS関数</a>と同じ順番です</li><li><strong>最大範囲と条件範囲のサイズを揃える</strong>こと。行数が異なると <code>#VALUE!</code> エラーになります</li></ul>



<h2 class="wp-block-heading"><span id="toc5">MAXIFS関数の基本的な使い方</span></h2>



<p class="wp-block-paragraph"><strong>結論から言うと、最大範囲と条件のペアを指定するだけです。</strong></p>



<p class="wp-block-paragraph">サンプルデータで、営業部の最大売上を求める式はこちらです。</p>



<pre class="wp-block-code"><code>=MAXIFS(D2:D9, B2:B9, &quot;営業部&quot;)</code></pre>



<p class="wp-block-paragraph">B列が「営業部」の行だけに絞り、D列の中で最大の数値を返します。結果は <strong>920,000</strong>（中村の売上）です。</p>



<p class="wp-block-paragraph">条件にはセル参照も使えます。F1セルに部署名を入力しておけば、ドロップダウンリストで切り替えられます。</p>



<pre class="wp-block-code"><code>=MAXIFS(D2:D9, B2:B9, F1)</code></pre>



<p class="wp-block-paragraph">F1の値を「営業部」から「総務部」に変えるだけで、結果が自動的に切り替わります。集計レポートを作るときに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc6">条件に比較演算子を使う</span></h3>



<p class="wp-block-paragraph">「売上が50万以上」のように数値条件を指定する場合は、比較演算子を文字列として渡します。</p>



<pre class="wp-block-code"><code>=MAXIFS(D2:D9, D2:D9, &quot;&gt;=500000&quot;)</code></pre>



<p class="wp-block-paragraph">使える比較演算子は次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>演算子</th><th>意味</th><th>記述例</th></tr></thead><tbody><tr><td><code>=</code></td><td>等しい</td><td><code>"=100"</code></td></tr><tr><td><code><></code></td><td>等しくない</td><td><code>"<>0"</code></td></tr><tr><td><code>></code></td><td>より大きい</td><td><code>">500000"</code></td></tr><tr><td><code>>=</code></td><td>以上</td><td><code>">=500000"</code></td></tr><tr><td><code><</code></td><td>より小さい</td><td><code>"<1000"</code></td></tr><tr><td><code><=</code></td><td>以下</td><td><code>"<=1000"</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">セル参照と組み合わせる場合は、演算子とセルを <code>&</code> で結合します。</p>



<pre class="wp-block-code"><code>=MAXIFS(D2:D9, D2:D9, &quot;&gt;=&quot;&amp;F1)</code></pre>



<p class="wp-block-paragraph">F1セルに基準値を入れておけば、後から自由に変更できます。</p>



<h2 class="wp-block-heading"><span id="toc7">MAXIFS関数の実務活用パターン</span></h2>



<p class="wp-block-paragraph">基本の使い方がわかったところで、実務でよく使われる応用パターンを見ていきましょう。パターン3（日付の期間指定）のみ別の列構成で説明します。それ以外はサンプルデータを使って解説します。</p>



<h3 class="wp-block-heading"><span id="toc8">パターン1: 複数条件で最大値を求める</span></h3>



<p class="wp-block-paragraph">「営業部」かつ「4月」のデータだけに絞って最大売上を求めます。条件のペアを追加するだけでOKです。</p>



<pre class="wp-block-code"><code>=MAXIFS(D2:D9, B2:B9, &quot;営業部&quot;, C2:C9, &quot;4月&quot;)</code></pre>



<p class="wp-block-paragraph">B列が「営業部」かつC列が「4月」の行だけを対象に、D列の最大値を返します。結果は <strong>850,000</strong>（田中の売上）です。</p>



<p class="wp-block-paragraph">3つ以上の条件も同じ要領で追加できます。条件範囲と条件のペアを続けて書くだけです。</p>



<h3 class="wp-block-heading"><span id="toc9">パターン2: ワイルドカードで部分一致</span></h3>



<p class="wp-block-paragraph">社員名に「藤」を含む人だけを対象にしたいときは、ワイルドカード <code>*</code> を使います。</p>



<pre class="wp-block-code"><code>=MAXIFS(D2:D9, A2:A9, &quot;*藤*&quot;)</code></pre>



<p class="wp-block-paragraph">「佐藤」と「伊藤」がマッチし、それぞれの売上480,000と510,000のうち最大値 <strong>510,000</strong> を返します。</p>



<figure class="wp-block-table"><table><thead><tr><th>ワイルドカード</th><th>意味</th><th>使用例</th></tr></thead><tbody><tr><td><code>*</code></td><td>任意の文字列（0文字以上）</td><td><code>"<em>藤</em>"</code></td></tr><tr><td><code>?</code></td><td>任意の1文字</td><td><code>"?月"</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>?</code> は1文字だけを表します。「?月」なら「4月」「5月」にはマッチしますが、「10月」にはマッチしません。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>ワイルドカードの使い方は<a href="https://mashukabu.com/excel-function-howto-use-countif/">COUNTIF関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-sumifs/">SUMIFS関数</a>と共通です。条件付き関数をまとめて覚えると効率が良いですよ。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc10">パターン3: 日付の期間指定で最大値を求める</span></h3>



<p class="wp-block-paragraph">「2025年4月1日から2025年6月30日まで」のように期間を絞って最大値を求める書き方です。ここでは日付データがA列、売上がB列に入っている場合を想定します。</p>



<pre class="wp-block-code"><code>=MAXIFS(B2:B100, A2:A100, &quot;&gt;=&quot;&amp;DATE(2025,4,1), A2:A100, &quot;&lt;=&quot;&amp;DATE(2025,6,30))</code></pre>



<p class="wp-block-paragraph">同じ条件範囲（A列）に対して「以上」と「以下」の2条件を指定します。これで期間の絞り込みができます。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>を使うと、日付の指定ミスを防げます。<code>">=2025/4/1"</code> と文字列で書くこともできますが、DATE関数のほうが確実です。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン4: 0以外の最大値を求める</span></h3>



<p class="wp-block-paragraph">データに0が混ざっていて、0を除外して最大値を求めたい場合です。サンプルデータでは渡辺の売上が0になっています。</p>



<pre class="wp-block-code"><code>=MAXIFS(D2:D9, D2:D9, &quot;&lt;&gt;0&quot;)</code></pre>



<p class="wp-block-paragraph">最大範囲と条件範囲に同じ範囲を指定し、条件を <code>"<>0"</code> にします。0以外のデータだけを対象に最大値を返します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>MAXIFS関数では0があっても最大値に影響しないケースがほとんどです。この <code>"<>0"</code> 条件がとくに威力を発揮するのは<a href="https://mashukabu.com/excel-function-howto-use-minifs/">MINIFS関数</a>のほうです。「0を除いた最小値」を求めたいときにぜひ活用してみてください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc12">パターン5: INDEX+MAXIFS関数で最大値の行データを取得する</span></h3>



<p class="wp-block-paragraph">「営業部の最大売上はわかったけど、それは誰の売上？」というときに使うパターンです。</p>



<pre class="wp-block-code"><code>=INDEX(A2:A9, MATCH(MAXIFS(D2:D9, B2:B9, &quot;営業部&quot;), D2:D9, 0))</code></pre>



<p class="wp-block-paragraph">処理の流れはこうなります。</p>



<ol class="wp-block-list"><li>MAXIFS関数で営業部の最大売上（920,000）を求める</li><li><a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数</a>でその値がD列の何行目にあるかを探す</li><li><a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数</a>でA列の該当行を返す</li></ol>



<p class="wp-block-paragraph">結果は <strong>中村</strong> です。ちょっとむずかしく見えますが、「最大値を求める → 位置を探す → 対応データを返す」の3ステップです。</p>



<h2 class="wp-block-heading"><span id="toc13">よくあるエラーと対処法</span></h2>



<p class="wp-block-paragraph">MAXIFS関数で「思った結果が出ない」ときの原因と対処法を整理しました。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>解決策</th></tr></thead><tbody><tr><td>結果が <code>0</code> になる</td><td>条件に一致するデータがない</td><td>条件の文字列を確認（全角/半角、前後のスペース）</td></tr><tr><td>結果が <code>0</code> になる</td><td>数値に見える文字列が入っている</td><td><a href="https://mashukabu.com/excel-function-howto-use-isnumber/">ISNUMBER関数</a>で確認し、<a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</a>で変換</td></tr><tr><td><code>#VALUE!</code> エラー</td><td>範囲のサイズ不一致</td><td>すべての範囲の行数を確認して揃える</td></tr><tr><td><code>#NAME?</code> エラー</td><td>Excel 2016以前で使用している</td><td>Excel 2019以降にアップグレード、または配列数式で代用</td></tr><tr><td>期待より小さい値が返る</td><td>一部のデータが文字列で無視されている</td><td>区切り位置機能またはVALUE関数で数値に変換</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc14">結果が「0」になるときの対処法</span></h3>



<p class="wp-block-paragraph">MAXIFS関数で一番多いトラブルがこれです。最初に確認するのは<strong>条件に一致するデータが本当にあるか</strong>です。</p>



<p class="wp-block-paragraph">条件の文字列が全角/半角で違っていたり、前後に見えないスペースが入っていたりすることがあります。<a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>で空白を除去してから比較すると解決することが多いですよ。</p>



<p class="wp-block-paragraph">次に疑うのは<strong>数値に見えて中身が文字列</strong>のケースです。CSVファイルの取り込み後に起きやすい問題です。</p>



<pre class="wp-block-code"><code>=ISNUMBER(D2)</code></pre>



<p class="wp-block-paragraph"><code>TRUE</code> なら数値、<code>FALSE</code> なら文字列です。文字列だった場合は、データタブの「区切り位置」機能で変換するか、<a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</a>を使って数値に変換してみてください。</p>



<h3 class="wp-block-heading"><span id="toc15">#VALUE! エラーが出るとき</span></h3>



<p class="wp-block-paragraph">最大範囲と条件範囲の行数が合っていないときに出ます。たとえば最大範囲が <code>D2:D9</code> なのに条件範囲が <code>B2:B5</code> だと <code>#VALUE!</code> になります。</p>



<p class="wp-block-paragraph">すべての範囲の開始行と終了行を揃えれば解決します。</p>



<h2 class="wp-block-heading"><span id="toc16">似た関数との違い・使い分け</span></h2>



<p class="wp-block-paragraph">MAXIFS関数に関連する条件付き関数をまとめて比較します。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>機能</th><th>使い分けのポイント</th></tr></thead><tbody><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-max/">MAX</a></strong></td><td>最大値を返す</td><td>条件なしで全体の最大値を求めるとき</td></tr><tr><td><strong>MAXIFS</strong></td><td>条件付きの最大値</td><td>部署別・月別など条件で絞りたいとき</td></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-minifs/">MINIFS</a></strong></td><td>条件付きの最小値</td><td>条件を絞って最小値を求めたいとき</td></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-sumifs/">SUMIFS</a></strong></td><td>条件付きの合計</td><td>条件を絞って合計を求めたいとき</td></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-countifs/">COUNTIFS</a></strong></td><td>条件付きの件数</td><td>条件を絞って件数を数えたいとき</td></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-averageifs/">AVERAGEIFS</a></strong></td><td>条件付きの平均</td><td>条件を絞って平均を求めたいとき</td></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-large/">LARGE</a></strong></td><td>N番目に大きい値</td><td>2位・3位の値を取得したいとき</td></tr><tr><td><strong><a href="https://mashukabu.com/excel-function-howto-use-small/">SMALL</a></strong></td><td>N番目に小さい値</td><td>下から数えたいとき</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc17">MAX関数との違い</span></h3>



<p class="wp-block-paragraph">MAX関数は範囲全体から最大値を返します。条件指定はできません。「全体の最大値」ならMAX関数、「条件を絞った最大値」ならMAXIFS関数です。</p>



<pre class="wp-block-code"><code>=MAX(D2:D9)
=MAXIFS(D2:D9, B2:B9, &quot;営業部&quot;)</code></pre>



<p class="wp-block-paragraph">上の式はD列全体の最大値、下の式は営業部だけの最大値です。使い分けはシンプルですよ。</p>



<h3 class="wp-block-heading"><span id="toc18">MINIFS関数との違い</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-minifs/">MINIFS関数</a>は構文がMAXIFS関数と完全に同じで、方向が逆なだけです。</p>



<pre class="wp-block-code"><code>=MAXIFS(D2:D9, B2:B9, &quot;営業部&quot;)
=MINIFS(D2:D9, B2:B9, &quot;営業部&quot;)</code></pre>



<p class="wp-block-paragraph">営業部の「最大売上」と「最小売上」をセットで出すと、データの振れ幅がすぐにわかります。</p>



<h3 class="wp-block-heading"><span id="toc19">SUMIFS関数との違い</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-sumifs/">SUMIFS関数</a>は条件付きの「合計」を返す関数です。MAXIFS関数は条件付きの「最大値」を返します。</p>



<p class="wp-block-paragraph">引数の構造は同じ（対象範囲が第1引数）なので、関数名を変えるだけで切り替えられます。</p>



<pre class="wp-block-code"><code>=SUMIFS(D2:D9, B2:B9, &quot;営業部&quot;)
=MAXIFS(D2:D9, B2:B9, &quot;営業部&quot;)</code></pre>



<p class="wp-block-paragraph">「営業部の売上合計」と「営業部の最大売上」を並べて比較すると、集計レポートの説得力が上がりますよ。</p>



<h2 class="wp-block-heading"><span id="toc20">まとめ</span></h2>



<ul class="wp-block-list"><li>MAXIFS関数は<strong>条件を満たすデータだけに絞って最大値を返す</strong>関数</li><li>書き方は <code>=MAXIFS(最大範囲, 条件範囲1, 条件1, ...)</code> で、条件は最大126組まで指定できる</li><li>比較演算子（<code>>=</code>、<code><></code>など）やワイルドカード（<code>*</code>、<code>?</code>）も使える</li><li>日付の期間指定は<a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>と組み合わせると確実</li><li>「0が返る」ときは条件の文字列確認と<a href="https://mashukabu.com/excel-function-howto-use-isnumber/">ISNUMBER関数</a>でデータ型をチェック</li><li>条件なしの最大値は<a href="https://mashukabu.com/excel-function-howto-use-max/">MAX関数</a>、条件付きの最小値は<a href="https://mashukabu.com/excel-function-howto-use-minifs/">MINIFS関数</a>を使う</li><li>Excel 2019以降またはMicrosoft 365で利用可能</li></ul>



<p class="wp-block-paragraph">MAXIFS関数は条件付き集計関数の中でも使いどころが多い関数です。まずは <code>=MAXIFS(範囲, 条件範囲, 条件)</code> の基本形から試してみてください。<a href="https://mashukabu.com/excel-function-howto-use-minifs/">MINIFS関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-sumifs/">SUMIFS関数</a>もセットで覚えると、条件付きの集計がぐっと効率的になりますよ。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc21">この記事で紹介した関数・関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-max/">MAX関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-minifs/">MINIFS関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-min/">MIN関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-sumifs/">SUMIFS関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-countifs/">COUNTIFS関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-averageifs/">AVERAGEIFS関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-large/">LARGE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-small/">SMALL関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-countif/">COUNTIF関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-isnumber/">ISNUMBER関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-maxifs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのMAX関数の使い方｜最大値から条件付きまで</title>
		<link>https://mashukabu.com/excel-function-howto-use-max/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-max/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 17 Mar 2022 14:56:49 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[LARGE関数]]></category>
		<category><![CDATA[MAXIFS]]></category>
		<category><![CDATA[MAX関数]]></category>
		<category><![CDATA[最大値]]></category>
		<category><![CDATA[条件付き最大値]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=1385</guid>

					<description><![CDATA[ExcelのMAX関数の使い方を基礎から徹底解説します。数値の最大値を求める基本構文はもちろん、MAXIFS関数を使った条件付き最大値の取得方法、MAX関数が0になるエラーの原因・対処法まで、実務ですぐ使える具体的なパターンを網羅。売上データや日付データへの応用例も紹介しています。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">テストの最高点、月間の最大売上、在庫数のピーク値。「この中で一番大きい数字はどれ？」と調べたい場面、仕事でよく出てきますよね。</p>



<p class="wp-block-paragraph">そのたびに目視で数字を追いかけていませんか？ データが数百行になると見落としも起きやすくなります。</p>



<p class="wp-block-paragraph"><strong>ExcelのMAX関数を使えば、どんなに大きな表でも最大値を一瞬で取り出せます。</strong> この記事では基本の書き方から条件付き最大値、日付対応、エラー対処法まで解説していきます。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">MAX関数とは？読み方と基本の仕組み</a><ol><li><a href="#toc2" tabindex="0">MAX関数がデータを扱うルール</a></li></ol></li><li><a href="#toc3" tabindex="0">MAX関数の書き方と基本的な使い方</a><ol><li><a href="#toc4" tabindex="0">基本構文と引数</a></li><li><a href="#toc5" tabindex="0">セル範囲で最大値を求める</a></li><li><a href="#toc6" tabindex="0">複数の離れた範囲から最大値を求める</a></li></ol></li><li><a href="#toc7" tabindex="0">条件付きで最大値を求める方法</a><ol><li><a href="#toc8" tabindex="0">MAXIFS関数で条件付き最大値を求める</a></li><li><a href="#toc9" tabindex="0">MAX(IF)配列数式で条件付き最大値を求める（Excel 2016以前）</a></li><li><a href="#toc10" tabindex="0">バージョン別の使い分け</a></li></ol></li><li><a href="#toc11" tabindex="0">実務で使えるMAX関数の活用パターン</a><ol><li><a href="#toc12" tabindex="0">日付データに使って最新日を取得する</a></li><li><a href="#toc13" tabindex="0">条件付き書式でMAX関数を使う</a></li><li><a href="#toc14" tabindex="0">N番目に大きい値はLARGE関数で</a></li></ol></li><li><a href="#toc15" tabindex="0">MAX関数のよくあるエラーと対処法</a><ol><li><a href="#toc16" tabindex="0">結果が「0」になるときの対処法</a></li><li><a href="#toc17" tabindex="0">範囲内にエラーがあるときの対処法</a></li></ol></li><li><a href="#toc18" tabindex="0">まとめ</a><ol><li><a href="#toc19" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">MAX関数とは？読み方と基本の仕組み</span></h2>



<p class="wp-block-paragraph">MAX関数は、指定した範囲の中から<strong>最大の数値を1つ返す</strong>関数です。</p>



<p class="wp-block-paragraph">読み方は「<strong>マックス関数</strong>」です。英語の「Maximum（マキシマム＝最大値）」の略が語源になっています。Excelの全バージョンとMicrosoft 365で使えます。職場のExcelならまず問題なく動きますよ。</p>



<p class="wp-block-paragraph">やっていることはとてもシンプルです。渡された数値をすべて比較して、一番大きい数値を返すだけです。</p>



<figure class="wp-block-table"><table><thead><tr><th>入力</th><th>出力</th></tr></thead><tbody><tr><td>数値やセル範囲（最大255個）</td><td>その中で一番大きい数値（1つ）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この記事ではサンプルデータとして、次の売上表を使って解説していきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th></tr></thead><tbody><tr><td><strong>1</strong></td><td>社員名</td><td>部署</td><td>4月売上</td></tr><tr><td><strong>2</strong></td><td>佐藤</td><td>営業部</td><td>580,000</td></tr><tr><td><strong>3</strong></td><td>鈴木</td><td>営業部</td><td>430,000</td></tr><tr><td><strong>4</strong></td><td>高橋</td><td>総務部</td><td>310,000</td></tr><tr><td><strong>5</strong></td><td>田中</td><td>営業部</td><td>720,000</td></tr><tr><td><strong>6</strong></td><td>伊藤</td><td>総務部</td><td>290,000</td></tr><tr><td><strong>7</strong></td><td>渡辺</td><td>営業部</td><td>650,000</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc2">MAX関数がデータを扱うルール</span></h3>



<p class="wp-block-paragraph">MAX関数がセルのデータをどう処理するか知っておくと、トラブルを防げます。</p>



<figure class="wp-block-table"><table><thead><tr><th>データの種類</th><th>MAX関数の扱い</th></tr></thead><tbody><tr><td>数値</td><td>比較対象になる</td></tr><tr><td>空白セル</td><td>無視される</td></tr><tr><td>文字列</td><td>セル範囲内では無視される</td></tr><tr><td>論理値（TRUE/FALSE）</td><td>セル範囲内では無視される</td></tr><tr><td>エラー値（#N/Aなど）</td><td>そのままエラーが返る</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイントは、引数に直接書いた場合の扱いが異なることです。<code>=MAX(TRUE, 0)</code> のように直接入力すると、TRUE=1・FALSE=0として計算されます。セル範囲内のTRUE/FALSEは無視されるので注意してください。</p>



<p class="wp-block-paragraph">数値が1つも含まれていない場合は <code>0</code> を返します。エラーではなく0になる点が要注意です。「あれ、最大値が0？」というときは、後半のエラー対処セクションをチェックしてみてください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>論理値や文字列もすべて含めて計算したい場合は、<a href="https://mashukabu.com/excel-function-howto-use-maxa/">MAXA関数</a>を使います。TRUE=1、FALSE=0、文字列=0として扱ってくれますよ。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc3">MAX関数の書き方と基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc4">基本構文と引数</span></h3>



<pre class="wp-block-code"><code>=MAX(数値1, [数値2], ...)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>内容</th></tr></thead><tbody><tr><td>数値1</td><td><strong>必須</strong></td><td>最大値を求めたい数値、セル参照、またはセル範囲</td></tr><tr><td>数値2〜255</td><td>任意</td><td>追加で比較したい数値や範囲（最大255個まで）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数には数値の直接入力、セル参照、セル範囲を指定できます。名前付き範囲（名前の定義）も使えるので、大きなデータを管理するときに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc5">セル範囲で最大値を求める</span></h3>



<p class="wp-block-paragraph">サンプル表の4月売上（C2:C7）の最大値を求めてみましょう。</p>



<pre class="wp-block-code"><code>=MAX(C2:C7)</code></pre>



<p class="wp-block-paragraph">結果は <code>720,000</code> です。6件の売上は290,000・310,000・430,000・580,000・650,000・720,000。最大の720,000（田中）が正しく取れていますね。</p>



<p class="wp-block-paragraph">数値を直接入力する書き方もできます。</p>



<pre class="wp-block-code"><code>=MAX(80, 95, 72, 88)</code></pre>



<p class="wp-block-paragraph">この場合は <code>95</code> が返ります。ちょっとした確認に便利ですが、実務ではセル範囲を指定するパターンがほとんどです。</p>



<p class="wp-block-paragraph">データが今後増える可能性がある場合は、列全体を指定できます。</p>



<pre class="wp-block-code"><code>=MAX(C:C)</code></pre>



<p class="wp-block-paragraph">C列のすべてのセルが対象になります。ただしデータ量が多いシートでは計算が遅くなります。範囲を絞れる場合は <code>C2:C1000</code> のように明示するのがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc6">複数の離れた範囲から最大値を求める</span></h3>



<p class="wp-block-paragraph">引数をカンマで区切ると、離れたセル範囲をまとめて比較できます。</p>



<pre class="wp-block-code"><code>=MAX(B2:B13, D2:D13)</code></pre>



<p class="wp-block-paragraph">たとえばB列に上半期、D列に下半期の売上が入っているとします。この式なら年間を通した最大売上を一発で出せます。間の列は自動的にスキップされるので、必要なデータだけを対象にできますよ。</p>



<h2 class="wp-block-heading"><span id="toc7">条件付きで最大値を求める方法</span></h2>



<p class="wp-block-paragraph">「営業部だけの最大売上を出したい」「特定の月だけの最高値を知りたい」など、<strong>条件を絞って最大値を求めたい</strong>場面はよく出てきますよね。</p>



<p class="wp-block-paragraph">MAX関数単体では条件指定ができません。条件付き最大値を求める方法は、Excelのバージョンによって使い分けが必要です。</p>



<h3 class="wp-block-heading"><span id="toc8">MAXIFS関数で条件付き最大値を求める</span></h3>



<p class="wp-block-paragraph">MAXIFS関数（条件付きで最大値を返す関数）を使うのが一番シンプルな方法です。</p>



<pre class="wp-block-code"><code>=MAXIFS(最大値の範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)</code></pre>



<p class="wp-block-paragraph">サンプル表で営業部の最大売上を求めるにはこう書きます。</p>



<pre class="wp-block-code"><code>=MAXIFS(C2:C7, B2:B7, &quot;営業部&quot;)</code></pre>



<p class="wp-block-paragraph">B列が「営業部」の行だけを対象にして、C列の最大値を返します。営業部の売上は580,000・430,000・720,000・650,000の4件。結果は <code>720,000</code>（田中）になります。</p>



<p class="wp-block-paragraph">総務部の最大売上も同じ要領です。</p>



<pre class="wp-block-code"><code>=MAXIFS(C2:C7, B2:B7, &quot;総務部&quot;)</code></pre>



<p class="wp-block-paragraph">総務部は310,000と290,000の2件なので、結果は <code>310,000</code>（高橋）です。</p>



<p class="wp-block-paragraph">複数条件を組み合わせることもできます。「営業部」かつ「売上50万以上」のデータに絞る場合はこちらです。</p>



<pre class="wp-block-code"><code>=MAXIFS(C2:C7, B2:B7, &quot;営業部&quot;, C2:C7, &quot;&gt;=&quot;&amp;500000)</code></pre>



<p class="wp-block-paragraph">営業部で50万以上は580,000・720,000・650,000の3件。結果は <code>720,000</code> です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>MAXIFS関数は<strong>Excel 2019以降またはMicrosoft 365</strong>で使えます。Excel 2016では使えません。Excel 2016以前では次のMAX(IF)配列数式を使ってください。</p></blockquote>



<p class="wp-block-paragraph">MAXIFS関数の詳しい使い方は「<a href="https://mashukabu.com/excel-function-howto-use-maxifs/">MAXIFS関数の使い方</a>」もあわせてどうぞ。</p>



<h3 class="wp-block-heading"><span id="toc9">MAX(IF)配列数式で条件付き最大値を求める（Excel 2016以前）</span></h3>



<p class="wp-block-paragraph">MAXIFS関数が使えないバージョンでは、MAX関数と<a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>を組み合わせた配列数式で代用できます。</p>



<p class="wp-block-paragraph">サンプル表で営業部の最大売上を求める式です。</p>



<pre class="wp-block-code"><code>=MAX(IF(B2:B7=&quot;営業部&quot;, C2:C7))</code></pre>



<p class="wp-block-paragraph"><strong>入力時はCtrl+Shift+Enterを押してください。</strong> Enterだけで確定すると正しい結果になりません。正しく入力できると、数式バーに <code>{=MAX(IF(B2:B7="営業部", C2:C7))}</code> と波括弧が自動で付きます。</p>



<p class="wp-block-paragraph">この波括弧は手入力では効きません。必ずCtrl+Shift+Enterで確定してくださいね。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>Excel 365（Microsoft 365）では動的配列に対応しているため、通常のEnterキーだけで配列数式が動作します。Ctrl+Shift+Enterは不要です。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc10">バージョン別の使い分け</span></h3>



<p class="wp-block-paragraph">条件付き最大値を求める方法をまとめました。使っているExcelのバージョンに合わせて選んでください。</p>



<figure class="wp-block-table"><table><thead><tr><th>方法</th><th>対応バージョン</th><th>入力方法</th><th>特徴</th></tr></thead><tbody><tr><td><strong>MAX関数</strong>（条件なし）</td><td>全バージョン</td><td>Enter</td><td>条件指定は不可</td></tr><tr><td><strong>MAX(IF)配列数式</strong></td><td>全バージョン</td><td>Ctrl+Shift+Enter</td><td>古いExcelでも使える</td></tr><tr><td><strong>MAXIFS関数</strong></td><td>Excel 2019以降 / 365</td><td>Enter</td><td>最もシンプル</td></tr><tr><td><strong>AGGREGATE関数</strong></td><td>Excel 2010以降</td><td>Enter</td><td>エラーを含む範囲向き</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Excel 2019以降ならMAXIFS関数が一番おすすめです。それ以前のバージョンではMAX(IF)配列数式を使ってみてください。</p>



<h2 class="wp-block-heading"><span id="toc11">実務で使えるMAX関数の活用パターン</span></h2>



<p class="wp-block-paragraph">基本と条件付きがわかったところで、実務でよく使われる応用パターンを見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc12">日付データに使って最新日を取得する</span></h3>



<p class="wp-block-paragraph">意外と知られていませんが、MAX関数は日付データにも使えます。Excelでは日付がシリアル値（連番の数値）で内部管理されています。そのためMAX関数で「一番新しい日付」を取得できます。</p>



<p class="wp-block-paragraph">たとえばA列に納品日が入っている場合はこう書きます。</p>



<pre class="wp-block-code"><code>=MAX(A2:A50)</code></pre>



<p class="wp-block-paragraph">一番新しい日付が返ります。結果セルの表示形式を「日付」にしておけば、見た目もきちんと日付で表示されますよ。</p>



<p class="wp-block-paragraph">特定の条件に合う最新日を取りたい場合もあります。たとえば「営業部の最終受注日」を求めるなら、MAXIFS関数が便利です。</p>



<pre class="wp-block-code"><code>=MAXIFS(D2:D100, B2:B100, &quot;営業部&quot;)</code></pre>



<p class="wp-block-paragraph">D列に受注日、B列に部署名が入っている場合の式です。結果セルの表示形式を「日付」に設定するのを忘れないでくださいね。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>逆に「一番古い日付」を取り出したい場合は<a href="https://mashukabu.com/excel-function-howto-use-min/">MIN関数</a>を使います。最小のシリアル値＝最古の日付を取得できますよ。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc13">条件付き書式でMAX関数を使う</span></h3>



<p class="wp-block-paragraph">表の中で最大値のセルを自動的に目立たせたい場合は、条件付き書式とMAX関数を組み合わせます。</p>



<p class="wp-block-paragraph">設定手順は次の3ステップです。</p>



<ol class="wp-block-list"><li>対象範囲（C2:C7）を選択</li><li>「ホーム」タブ →「条件付き書式」→「新しいルール」</li><li>「数式を使用して…」を選び、数式欄に <code>=C2=MAX($C$2:$C$7)</code> と入力</li></ol>



<p class="wp-block-paragraph">MAX関数の範囲を絶対参照（<code>$C$2:$C$7</code>）にするのがポイントです。これで最大値のセルだけが自動でハイライトされます。売上一覧や成績表でトップを目立たせたいときに使ってみてください。</p>



<h3 class="wp-block-heading"><span id="toc14">N番目に大きい値はLARGE関数で</span></h3>



<p class="wp-block-paragraph">「1位じゃなくて2位の売上を知りたい」という場合は、MAX関数ではなく<a href="https://mashukabu.com/excel-function-howto-use-large/">LARGE関数</a>を使います。</p>



<pre class="wp-block-code"><code>=LARGE(C2:C7, 2)</code></pre>



<p class="wp-block-paragraph">サンプル表なら2番目に大きい <code>650,000</code>（渡辺）が返ります。</p>



<p class="wp-block-paragraph">ちなみに <code>=LARGE(C2:C7, 1)</code> はMAX関数と同じ結果です。MAX関数は常に1位専用なので、2位以降が必要なときはLARGE関数の出番ですよ。</p>



<h2 class="wp-block-heading"><span id="toc15">MAX関数のよくあるエラーと対処法</span></h2>



<p class="wp-block-paragraph">MAX関数自体がエラーを出すことは少ないですが、<strong>「期待どおりの結果にならない」</strong> ケースはよくあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>解決策</th></tr></thead><tbody><tr><td>結果が <code>0</code> になる</td><td>数値に見える文字列が入っている</td><td><a href="https://mashukabu.com/excel-function-howto-use-isnumber/">ISNUMBER関数</a>で確認→変換</td></tr><tr><td>結果が <code>0</code> になる</td><td>範囲の指定ミス</td><td>数式バーで範囲を確認</td></tr><tr><td>結果が <code>0</code> になる</td><td>対象範囲がすべて空白</td><td>データ入力を確認</td></tr><tr><td><code>#N/A</code> や <code>#VALUE!</code> が出る</td><td>範囲内にエラーセルがある</td><td>AGGREGATE関数で回避</td></tr><tr><td>期待より小さい値が返る</td><td>一部が文字列で無視されている</td><td>文字列を数値に変換</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc16">結果が「0」になるときの対処法</span></h3>



<p class="wp-block-paragraph">MAX関数で一番多いトラブルがこれです。原因はほぼ「見た目は数字だが中身が文字列」というケースです。</p>



<p class="wp-block-paragraph">特にCSVファイルを取り込んだあとに起きやすい現象です。次のようなケースで数値が文字列化します。</p>



<ul class="wp-block-list"><li>セルの書式が「文字列」に設定されている</li><li>先頭にゼロが付いている（例: 007）</li><li>数値の前後に空白文字が含まれている</li></ul>



<p class="wp-block-paragraph">まず<strong>ISNUMBER関数</strong>で確認してみましょう。</p>



<pre class="wp-block-code"><code>=ISNUMBER(A1)</code></pre>



<p class="wp-block-paragraph"><code>TRUE</code> なら数値、<code>FALSE</code> なら文字列です。<a href="https://mashukabu.com/excel-function-howto-use-isnumber/">ISNUMBER関数</a>でチェックする習慣をつけておくと、トラブルの切り分けが早くなります。</p>



<p class="wp-block-paragraph">文字列だった場合の対処法は3つあります。</p>



<ol class="wp-block-list"><li><strong>データタブの「区切り位置」</strong> &#8212; 範囲を選択→「区切り位置」→そのまま「完了」で一括変換</li><li><strong><a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</a></strong> &#8212; <code>=VALUE(A1)</code> で1セルずつ数値に変換</li><li><strong>エラーチェックオプション</strong> &#8212; セル左上の緑三角をクリック→「数値に変換」</li></ol>



<p class="wp-block-paragraph">大量のデータを変換するなら「区切り位置」が一番手軽です。</p>



<h3 class="wp-block-heading"><span id="toc17">範囲内にエラーがあるときの対処法</span></h3>



<p class="wp-block-paragraph">対象範囲に <code>#N/A</code> や <code>#VALUE!</code> が1つでも含まれていると、MAX関数もそのエラーを返してしまいます。</p>



<p class="wp-block-paragraph">このときは<strong>AGGREGATE関数</strong>を使います。エラーを無視して最大値を求められます。</p>



<pre class="wp-block-code"><code>=AGGREGATE(4, 6, C2:C7)</code></pre>



<p class="wp-block-paragraph">第1引数の <code>4</code> は「最大値」、第2引数の <code>6</code> は「エラー値を無視」という意味です。ちょっと覚えにくいですが、<code>4, 6</code> の組み合わせだけメモしておけば大丈夫です。</p>



<p class="wp-block-paragraph">AGGREGATE関数はExcel 2010以降で使えます。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>で個別のエラーセルを処理する方法もあります。ただしデータが多い場合はAGGREGATE関数のほうが手軽ですよ。</p>



<h2 class="wp-block-heading"><span id="toc18">まとめ</span></h2>



<p class="wp-block-paragraph">MAX関数は指定した範囲から<strong>最大値を1つ返す</strong>シンプルな関数です。ここまでの内容を整理しておきましょう。</p>



<ul class="wp-block-list"><li>書き方は <code>=MAX(範囲)</code> で、引数は最大255個まで指定できる</li><li>条件付き最大値は<strong><a href="https://mashukabu.com/excel-function-howto-use-maxifs/">MAXIFS関数</a></strong>（Excel 2019以降）が最もシンプル</li><li>Excel 2016以前では<strong>MAX(IF)配列数式</strong>をCtrl+Shift+Enterで入力</li><li>日付データにも使える（最新日の取得に便利）</li><li>「0が返る」ときは<a href="https://mashukabu.com/excel-function-howto-use-isnumber/">ISNUMBER関数</a>でデータが文字列になっていないか確認</li><li>エラーを含む範囲には<strong>AGGREGATE関数</strong>で対処</li><li>2位以降の値が必要なら<strong><a href="https://mashukabu.com/excel-function-howto-use-large/">LARGE関数</a></strong>を使う</li><li>最小値を求めたいときは<strong><a href="https://mashukabu.com/excel-function-howto-use-min/">MIN関数</a></strong>とセットで覚えると便利</li></ul>



<p class="wp-block-paragraph">まずは <code>=MAX(C2:C7)</code> の基本形から使ってみてください。条件付き最大値やエラー対処も覚えると、データ集計の幅がぐっと広がりますよ。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc19">この記事で紹介した関数・関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-maxifs/">MAXIFS関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-min/">MIN関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-large/">LARGE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-maxa/">MAXA関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-isnumber/">ISNUMBER関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-sum/">SUM関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-average/">AVERAGE関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-max/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
