想定読者:PE・FAS・経営企画などで顧客別売上表や類似会社の倍率表を扱い、更新のたびに手作業で数字を直している方
前提知識:SUM や COUNTIF の基本、セルの絶対参照($C$2 の書き方)。LARGE などの関数は初めてで構いません

結論:上位N件は LARGE、​条件付きの​最大・​最小は MAXIFS・​MINIFS

顧客別売上表を並べ替えて上位10社を合計する手順は、売上の更新のたびにやり直しになります。LARGE 関数は「k 番目に大きい値」を返すので、並べ替えなしで1位から10位の売上を取り出せます。以下は学習用の架空事例ですが、50社・売上合計100,000百万円の表では、上位5社が35.4%、上位10社が53.9%を占めます(図表1)。

つまずきやすいのは、同額の顧客がいると順位から引いた会社名が重複する点と、条件付きの最大・最小の求め方です。顧客集中度の定義と評価(契約内容やスイッチングコストなど)は、顧客集中度分析と顧客集中​リスクの​評価に委ね、本稿は数字を Excel で出す方法に絞ります。

LARGE・​SMALL の​基本:k 番目の​値を​返し、​数値だけを​数える

LARGE 関数の書式は LARGE(配列, k) で、配列(セル範囲)の中で大きい方から k 番目の値を返します。SMALL 関数は小さい方から数えます。k が0以下、または対象データの個数より大きいと #NUM! エラーになります1。50社の表で LARGE(売上,51) とすると #NUM! です(Excelの​エラー値)。

もうひとつの注意点は件数です。類似会社の表では、EV/EBITDA 倍率(企業価値を EBITDA で割った倍率)が算出できない会社に「NM」という文字を入れることがあります。COUNT 関数は、範囲の中の数値だけを数え、文字列や空白は数えません2。設例(類似会社12社のうち2社が NM)を編集部が Excel に入力して確かめると、COUNT(倍率の範囲) は10、LARGE(倍率の範囲,10) は最小の2.1、LARGE(倍率の範囲,11) は #NUM! でした。k の上限は会社数(12社)ではなく数値の件数(10件)です。

件数を超える k のガード
=IF(k>COUNT(範囲),"",LARGE(範囲,k))

倍率の範囲で k が4なら9.8、11なら空白が返ります。

上位N社の​売上比率と​累積比率を​求める

以下は学習用の架空事例です。顧客別売上表は50社分で、A 列=顧客名、B 列=セグメント(A・B・C)、C 列=売上(百万円)を2〜51行目に入力します。売上の合計100,000百万円は損益計算書の売上高と一致すると仮定し、=SUM(C2:C51) の検算セルを置きます。これが上位N社比率の分母です。F 列に順位 k(1〜10)を並べ、G 列以降に次の式を入れます。

順位ごとの売上・構成比・累積比(2行目の例)
売上:=LARGE($C$2:$C$51,F2)
構成比:=G2/SUM($C$2:$C$51)
累積比:=SUM($G$2:G2)/SUM($C$2:$C$51)

10行ぶん下にコピーすると図表1ができます。比率は小数第1位までの表示で、セルの値は丸めていません。

図表1:上位10社の売上・構成比・累積比(売上:百万円、比率:%)
図表1:上位10社の売上・構成比・累積比(売上:百万円、比率:%)
順位顧客セグメント売上構成比累積比
1顧客31A9,8009.89.8
2顧客08B7,6007.617.4
3顧客17A6,4006.423.8
4顧客33C6,4006.430.2
5顧客42B5,2005.235.4
6顧客05A4,5004.539.9
7顧客26C4,1004.144.0
8顧客12B3,6003.647.6
9顧客47A3,3003.350.9
10顧客21C3,0003.053.9
上位5社 / 上位10社35,400 / 53,90035.4 / 53.9
単位:売上は​百万円、​比率は%。​対象:架空の​顧客別売上表50社​(売上合計100,000百万円)。​構成比=売上÷100,000、​累積比=1位からの​累計÷100,000(小数第2位を四捨五入)。​出所:学習用の​仮定に​基づき大手町​プレップ​作成。​(スマートフォンでは​表を​横に​スクロールできます)

図表1では、上位5社の売上が 9,800+7,600+6,400+6,400+5,200=35,400百万円で、35,400÷100,000=35.4%、上位10社は53,900百万円で53.9%です。累積比の10位の行が上位10社比率になります。この累積比の並びは、パレート分析の累積構成比と同じ考え方です。

合計の​出し方は​2通り​ある

合計だけなら、波かっこの配列定数で k を並べた =SUM(LARGE($C$2:$C$51,{1,2,3,4,5})) の1セルでも35,400が返ります(SUMPRODUCT​関数でも同じ)。ただし N を変えるたびに式を直す必要があり、途中の値も見えないため、編集部は1行ずつ並べた図表1の形を本体にし、1セル版を検算に使うことを勧めます。

「10位以上の売上を足す」=SUMIF($C$2:$C$51,">="&LARGE($C$2:$C$51,10)) は、境界の同額に弱い方法です。仮に10位と11位がともに3,000百万円なら、53,900ではなく56,900を返します。

同額の​顧客が​いると、​順位から​会社名を​引く​ときに​重複する

図表1の「顧客」列は、LARGE の値を MATCH で探し、INDEX で顧客名を返す形で引き当てるのが素直です。MATCH(検査値,検査範囲,0) の「0」は完全一致で、一致する最初の値の位置を返します3。そのため同額の顧客が2社いると、2社目を探しても1社目の位置が返ります。

設例では顧客17と顧客33の売上がともに6,400百万円で、LARGE は3位にも4位にも6,400を返します。3位の行の =INDEX($A$2:$A$51,MATCH(G4,$C$2:$C$51,0)) も、G5 を探す4位の行も、表の上にある顧客17を返し、4位に顧客17が重複します(図表2の「補助列なし」)。XLOOKUP 関数も最初に見つかった一致を返すため4、替えても解決しません(同ページには Excel 2016・2019 では使えないとの記載もあります。使い分けはINDEX/MATCHと​XLOOKUP​実践)。

図表2:同額(6,400百万円)の顧客を順位から引き当てた結果の比較(売上:百万円)
図表2:同額(6,400百万円)の顧客を順位から引き当てた結果の比較(売上:百万円)
順位売上補助列なし補助列あり
27,600顧客08顧客08
36,400顧客17顧客17
46,400顧客17(重複)顧客33
55,200顧客42顧客42
単位:百万円。​補助列なし=LARGE の​値を MATCH の​完全一致で​探す。​補助列あり=一意順位で​探す。​出所:学習用の​仮定に​基づき大手町​プレップ​作成。​(スマートフォンでは​表を​横に​スクロールできます)

直し方は、D 列に「一意順位」の補助列を作り、同額には表の上から順に別の順位を振ることです。

一意順位の補助列(D2、下にコピー)
=RANK.EQ(C2,$C$2:$C$51,0)+COUNTIF($C$2:C2,C2)-1

RANK.EQ は大きい順の順位を返し、同額には同じ順位を付けます(STDEV・​VAR・​PERCENTILE・​RANK​関数)。COUNTIF($C$2:C2,C2) は、2行目から現在の行までに同じ売上が何回出たかを数えます。顧客17(18行目)は3+1-1=3、顧客33(34行目)は3+2-1=4です。

名前を =INDEX($A$2:$A$51,MATCH(F2,$D$2:$D$51,0)) で引くと、3位が顧客17、4位が顧客33と分かれます(図表2の「補助列あり」)。同額の中の並びは表の上の行を先にするという取り決めで、事業の実態による順位ではありません。売上も同じ形で引いて LARGE の値と比べるか、一意順位の合計が 1+2+…+50=1,275 になるかで検算できます。設例では2,300・1,200・550も各2社あり、同額は上位だけの話ではありません。

条件付きの​最大・​最小:MAXIFS・​MINIFS

MAXIFS 関数は、条件で指定したセルの中の最大値を返し、書式は MAXIFS(最大範囲,条件範囲1,条件1,[条件範囲2,条件2],…) です。範囲と条件は最大126組まで指定でき、範囲のサイズ・形状が違うと #VALUE!、一致するセルがないと0が返ります5。MINIFS 関数は最小値を返し、書式は同じです6。

顧客別売上表と、類似会社表(A 列=会社名、B 列=売上高、C 列=EV/EBITDA 倍率。2〜13行目)で、図表3の7つを求めます。たとえば3番は =MINIFS($C$2:$C$51,$B$2:$B$51,"A",$C$2:$C$51,">=3000")、6番は =MAXIFS($C$2:$C$13,$B$2:$B$13,">=10000") です。ほかの行も、範囲・条件・関数名を入れ替えるだけです。

図表3:条件付きの最大・最小(MAXIFS・MINIFS)の結果と該当件数
図表3:条件付きの最大・最小(MAXIFS・MINIFS)の結果と該当件数
求めたいもの結果該当件数
1 セグメントBの最大売上7,60019
2 セグメントCの最大売上6,40015
3 セグメントA・売上3,000以上の最小3,3004
4 セグメントC・売上6,000未満の最大4,10014
5 セグメントC・売上7,000以上の最大00
6 類似会社・売上高10,000以上の最大倍率24.68
7 類似会社・売上高10,000以上の最小倍率6.98
単位:売上・​売上高は​百万円、​倍率​(EV/EBITDA)は​倍、​該当件数は​件。​1〜5は​顧客別売上表50社、​6〜7は​類似会社12社で、​該当件数は​倍率が​数値の​会社だけを​数えた​(NMを除く)。​5は​該当0件の​ため結果が​0。​出所:学習用の​仮定に​基づき大手町​プレップ​作成。

図表3の5つ目「セグメントCで7,000以上」は該当がなく、結果は0です。この0は「該当なし」の意味なので、COUNTIFS で該当件数を並べると誤読を防げます。また売上の単位が百万円なら、「100億円以上」は ">=10000" です。">=100" と書くと、ほぼ全件が条件に合ってしまいます。

対応バージョンは、Microsoft サポートの「適用先」にExcel 2019、2021、2024、Microsoft 365 が挙げられ、それ以前のバージョンは含まれていません7。古い Excel と共有するなら、=MAX(IF($B$2:$B$13>=10000,$C$2:$C$13)) の配列数式(Ctrl+Shift+Enter で確定)で代替でき、設例では24.6を返しました(レガシー​配列数式と​スピル配列の​違い)。

コンプスの​外れ​値候補を、​最大・​最小と​中央値の​比で​確認する

類似会社比較(コンプス)では、各社の倍率の中央値などで評価に使う倍率を決めます。類似会社の選び方は類似会社選定基準とEV/EBITDA​倍率と​類似会社比較法に委ね、ここでは飛び抜けた値の点検だけを扱います。設例の類似会社12社が図表4です。H社とK社は NM で、倍率のある会社は10社です。中央値を求める MEDIAN 関数は、範囲の文字列・論理値・空白を無視し、ゼロは含めます8。10社の倍率は大きい順に 24.6、11.5、10.2、9.8、8.6、8.1、7.4、6.9、5.2、2.1 で、中央値は5番目と6番目の平均(8.6+8.1)÷2=8.35倍です。

図表4:EV/EBITDA倍率と中央値 会社 売上高(百万円) EV/EBITDA(倍) 0 5 10 15 20 25 類似I社 12,500 類似F社 41,000 類似D社 96,000 類似A社 380,000 類似B社 210,000 類似G社 28,000 類似C社 150,000 類似E社 64,000 類似J社 9,000 類似L社 3,800 類似H社 17,000 類似K社 6,200 24.6 ▲最大 11.5 10.2 9.8 8.6 8.1 7.4 6.9 5.2 2.1 ▼最小 NM(倍率を算出できない) NM(倍率を算出できない) 破線=中央値 8.35倍(倍率のある10社)
単位:倍​(売上高は百万円)。​NMは​倍率を​算出できない​会社。​出所:学習用の​仮定に​基づき大手町​プレップ​作成。​(スマートフォンでは​図を​横に​スクロールできます)

確認列には、最大値と最小値を中央値で割った比を置きます。=MAX(C2:C13)/MEDIAN(C2:C13) は 24.6÷8.35=2.95倍、=MIN(C2:C13)/MEDIAN(C2:C13) は 2.1÷8.35=0.25倍です(小数第3位を四捨五入)。売上高10,000百万円以上の9社(倍率ありは8社)に絞ると、MAXIFS は24.6のまま、MINIFS は6.9(中央値の0.83倍)になります(図表3の6・7)。最小の2.1は売上高3,800百万円の類似L社で、規模の条件を付けると対象から外れ、条件付きの最小は中央値に近づきます。最大の24.6は売上高12,500百万円の類似I社で、条件を付けても残ります。

この比は確認のきっかけにすぎません。最小値は規模の小ささが一因という仮説が立ち、最大値は分母の EBITDA が小さい、特殊要因があるなど、背景を元資料で確かめる候補になります。外れ値を判定する決まった基準はなく、「中央値の3倍だから除外する」といった機械的な運用は避け、事業内容や財務の中身を見て判断します。

実務​チェックリスト

  • LARGE・SMALL の範囲に合計行が入っていないか(入ると1位が合計になる)。k が件数を超えないよう COUNT でガードしたか。
  • 上位N社比率の分母(顧客別売上の合計)が売上高と一致する検算セルがあるか。
  • 会社名を引く表に一意順位の補助列を入れ、1〜N が1回ずつ現れるか確かめたか。
  • 条件付きの最大・最小の隣に該当件数(COUNTIFS)を置き、0を「該当なし」と読めるか。
  • 範囲の形状と条件の単位(百万円か億円か)が合っているか、共有先の Excel が対応バージョンか。
  • 倍率が NM の会社に0を入れていないか(0は数値として MIN や MEDIAN に入る)。

よく​ある​質問​(FAQ)

​「セグメントAの上位3社」のように、​条件付きの​第 k 位は MAXIFS で​出せますか。

MAXIFS と MINIFS が​返すのは​条件に​合う​最大と​最小だけです。​第2位以降には​配列数式や AGGREGATE 関数を​使う​方法が​あり、​基本は​SUBTOTAL・​AGGREGATE​関数の​記事で​扱っています。

倍率が NM の​会社は、​空白に​しても​よいですか。

LARGE・​SMALL・​MAX・​MIN・​MEDIAN では​文字列も​空白も​対象外なので、​結果は​同じです。​ただし​「算出できない」と​「入力漏れ」を​区別できるよう、​NM と​書く​方が​見やすくなります。

まとめ

LARGE と SMALL は並べ替えなしで k 番目の値を取り出し、上位N社の売上比率と累積比率を元データに追随させます。会社名を引くときは、一意順位の補助列で同額の重複を防ぎます。MAXIFS と MINIFS は条件付きの最大・最小を1つの式で求め、最大・最小と中央値の比は外れ値候補を点検するきっかけになります。件数のガードと検算セルが、更新時のずれを防ぎます。

脚注

  1. Microsoft サポート「LARGE 関数」「SMALL 関数」の「解説」。k が0以下、または対象データの個数より大きい場合に #NUM! が返ると書かれている(参考文献 R1・R2)。↩
  2. Microsoft サポート「COUNT 関数」の「解説」。配列やセル範囲の参照では数値だけが対象で、空白セル・論理値・文字列・エラー値は数えないと書かれている(R3)。↩
  3. Microsoft サポート「MATCH 関数」の「照合の型」の表。照合の型が0のとき、検査値と完全に一致する最初の値を検索すると書かれている(R4)。↩
  4. Microsoft サポート「XLOOKUP 関数」。最初に見つかった一致に対応する項目を返すこと、Excel 2016 および Excel 2019 では使用できないことが書かれている(R5)。↩
  5. Microsoft サポート「MAXIFS 関数」の「構文」「解説」「例」。範囲と条件は最大126組、サイズ・形状が異なると #VALUE!(例5)、一致するセルがないと0(例6)とある(R6)。↩
  6. Microsoft サポート「MINIFS 関数」の「構文」。MINIFS(最少範囲, 条件範囲1, 条件1, …) の書式と、最大126組の範囲と条件を指定できることが書かれている(R7)。↩
  7. Microsoft サポート「MAXIFS 関数」「MINIFS 関数」の冒頭の「適用先」(R6・R7)。Wall Street Oasis の MAX・MIN 関数の解説にも、両関数は Excel 2019 と Excel 365 でのみ使え、MAX(IF()) で代替できるとある(R8・R9)。↩
  8. Microsoft サポート「MEDIAN function」(英語版)の Remarks。文字列・論理値・空のセルは無視し、値がゼロのセルは含めると書かれている(R10。訳は編集部)。↩

参考文献​(2026年10月確認)

※本記事は教育目的の一般的な解説であり、法務・税務・投資助言ではありません。設例は理解のための学習用の架空事例であり、実在の企業・案件とは関係ありません。