Excel で条件に基づいて最小値または下位 N 個の値を合計する
以前のチュートリアルでは、データ範囲内の最小 n 個の値を合計する方法を解説しました。本記事では、さらに高度なテクニックとして、Excel で1 つまたは複数の条件に基づいて最小 n 個の値を合計する方法をご紹介します。

Excel で条件に基づいて最小値または下位 N 個の値を合計する
たとえば、次のようなスクリーンショットに示すデータ範囲があるとします。この中から、製品「Apple」の注文の中で最も小さい金額から3 件を合計したい場合です。

Excel で条件付きの範囲から下位 n 個の値を合計するには、SUM 関数、SMALL 関数、および IF 関数を組み合わせて配列数式を作成します。一般的な構文は次のとおりです。
{=SUM(SMALL(IF(range=criteria,values),{1,2,N}))}
Array formula, should press Ctrl + Shift + Enter keys together.
Array formula, should press Ctrl + Shift + Enter keys together.
- range=criteria 特定の条件に一致するセル範囲。
- values: 合計する対象となる下位 n 個の値を含むリスト。
- N: n 番目に小さい値。
上記の問題を解決するには、以下の配列数式を空白セルに入力してください。
=SUM(SMALL(IF(($A$2:$A$14=D2), $B$2:$B$14),{1,2,3}))
次に、Ctrl + Shift + Enterキーを同時に押すと、以下スクリーンショットのような正しい結果が得られます。

数式の説明:
=SUM(SMALL(IF(($A$2:$A$14=D2), $B$2:$B$14),{1,2,3}))
- IF(($A$2:$A$14=D2), $B$2:$B$14):範囲 A2:A14 内の製品が「Apple」と一致する場合、注文リスト(B2:B14)から対応する数値を返します。一致しない場合は FALSE が表示されます。結果は次のようになります:{800;FALSE;FALSE;FALSE;1000;230;FALSE;FALSE;1600;FALSE;900;FALSE;500}。
- SMALL(IF(($A$2:$A$14=D2), $B$2:$B$14),{1,2,3}): この SMALL 関数は FALSE 値を無視して、配列内の最小値から3 番目までの値を返します。その結果、{230,500,800}が得られます。
- SUM(SMALL(IF(($A$2:$A$14=D2), $B$2:$B$14),{1,2,3}))=SUM({230,500,800}): 最後に、SUM 関数が配列内の数値を合計し、結果として1530 が得られます。
ヒント:2 つ以上の条件を処理する場合
2 つ以上の条件に基づいて下位 n 個の値を合計する必要がある場合は、IF 関数内で「*」文字を使って他の範囲と条件を追加するだけです。例:
{=SUM(SMALL(IF((range1=criteria1)*(range2=criteria2) *(range3=criteria3)…,values),{1,2,N}))}
Array formula, should press Ctrl + Shift + Enter keys together.
Array formula, should press Ctrl + Shift + Enter keys together.
- Range1=criteria1 最初の条件に一致する最初のセル範囲。
- Range2=criteria22 番目の条件に一致させるための2 番目のセル範囲。
- Range3=criteria33 番目の条件に一致させるための3 番目のセル範囲。
- values: 合計したい下位 n 個の値を含むリスト。
- N: n 番目に小さい値。
たとえば、販売担当者が Kerry である製品「Apple」の注文の中から下位3 件を合計したい場合は、以下の数式をご利用ください。
=SUM(SMALL(IF(($A$2:$A$14=E2)*($B$2:$B$14=F2), $C$2:$C$14),{1,2,3}))
次に、Ctrl + Shift + Enterキーを同時に押すと、必要な結果が得られます。

使用された関連関数:
- SUM:
- SUM 関数は、個別の値、セル参照、範囲、またはこれらの組み合わせを合計します。
- SMALL:
- Excel の SMALL 関数は、値を昇順に並べ替えたリストにおける指定位置の数値を返します。
- IF:
- IF 関数は特定の条件を判定し、TRUE の場合は指定した値を、FALSE の場合は別の値を返します。
関連記事:
- 最小値または下位 N 個の値を合計する
- Excel では、SUM 関数を使えばセル範囲を簡単に合計できます。ただし、場合によっては、以下のスクリーンショットのように、データ範囲内の最小値や下位3 個、5 個、あるいは任意の n 個の数値を合計したいこともあるでしょう。そんなときは、SUMPRODUCT 関数と SMALL 関数を組み合わせることで、この課題をスマートに解決できます。
- Excel で請求書金額を経過日数別に小計する
- 以下スクリーンショットのように、経過日数に基づいて請求書金額を合計するのは、Excel での定番作業です。このチュートリアルでは、標準の SUMIF 関数を使って、経過日数ごとに請求書金額を小計する方法をご紹介します。
- エラーを無視してすべての数値セルを合計する
- エラー値を含む数値範囲を合計する際、通常の SUM 関数では正しく計算できません。数値のみを合計し、エラー値をスキップしたい場合は、AGGREGATE 関数を使うか、SUM 関数と IFERROR 関数を組み合わせるのが便利です。
最高の Office 生産性ツール
Kutools for Excel - あなたを群衆の中から際立たせます
| 🤖 | KUTOOLS AI アシスト:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気機能:検索・ハイライト・重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー VLookup:複数条件 | 複数値 | 複数シート間 | ファジーマッチ... | |
| 高度なドロップダウンリスト:簡単なドロップダウンリスト | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト... | |
| 列マネージャー:指定した数の列を追加 | 列の移動 | 非表示列の表示状態を切り替え |列を比較して同じ/異なるセルを選択... | |
| 注目の機能:グリッドフォーカス | デザインビュー | 強化された数式バー | ワークブックとシートマネージャー|リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/イタリック/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除...)| 50+チャートタイプ(ガントチャート...)| 40+実用的な数式(誕生日に基づいて年齢を計算します...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入...)| 12 変換ツール(単語に変換する、為替レートの変換...)| 7 結合と分割ツール(高度な行のマージ、Excel セルを分割...)|。。。他にも多数 |
Kutools を好みの言語でお使いいただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+言語以上をサポートしています!
Kutools for Excel は300 以上の機能を備えており、必要な機能が常にワンクリックで利用できます…
Office Tab - Microsoft Office(Excel を含む)でタブを使った閲覧・編集を可能にします
- 数十もの開いているドキュメントを1 秒で切り替えられます!
- 毎日何百回ものマウスクリックを削減して、マウス手の悩みともさよならしましょう。
- 複数のドキュメントを閲覧・編集する際の生産性が50%も向上します。
- Office(Excel を含む)に、Chrome、Edge、Firefox のような効率的なタブ機能をもたらします。