「50件のテスト結果を10点刻みに集計したい」「顧客年齢層の分布を一覧で把握したい」――そんなとき、ExcelのFREQUENCY関数が力を発揮します。FREQUENCY関数は、データがどの区間に何件あるかを配列で一括返却する統計関数で、手動でCOUNTIFSを何行も書く手間を省き、度数分布表をスマートに作れます。
本記事では、FREQUENCY関数の基本構文・引数・配列数式とスピル入力の違い・成績分布/年齢区分/価格帯分析などの業務シナリオ別パターン・ヒストグラムとの連携方法・COUNTIFSとの使い分け・よくあるエラーの対処法・MOS Excel試験との関連を体系的に解説します。
FREQUENCY関数とは
FREQUENCY関数は、データ配列の各要素が指定した区間(ビン)のどこに属するかを数え、区間ごとの度数(件数)を配列で返す関数です。「度数分布」とも呼ばれ、データのばらつきや偏りを把握するときの第一歩になります。
| 特徴 | 説明 |
|---|---|
| 戻り値の個数 | 区間配列の要素数+1(区間を超える件数も返す) |
| 戻り値の型 | 数値の配列(複数セルに一括返却) |
| 空白・テキスト | データ配列内の空白・テキストは無視される |
| 重複カウント | 各区間の上限値は次の区間には含まれない(左開・右閉の区間) |
基本構文と引数
=FREQUENCY(データ配列, 区間配列)
| 引数 | 説明 | 省略 |
|---|---|---|
| データ配列 | 度数を数えたい元データのセル範囲または配列 | 必須 |
| 区間配列 | 区切り値(上限値)を並べたセル範囲または配列。昇順に並べる | 必須 |
区間の仕組みを理解するポイント:区間配列に {60, 70, 80, 90} と指定した場合、返却される配列は次の5要素になります。
| 返却要素 | 対象範囲 | 説明 |
|---|---|---|
| 1番目 | 60以下 | 最初の区間値以下のデータ件数 |
| 2番目 | 61~70 | 前の区間値より大きく次の区間値以下 |
| 3番目 | 71~80 | 同上 |
| 4番目 | 81~90 | 同上 |
| 5番目 | 91以上 | 最後の区間値より大きいデータ件数(あふれ) |
区間配列の要素数より戻り値の要素数が1つ多いことに注意してください。最後の要素は区間配列の最大値を超えるデータ件数(「あふれ」)を示します。
入力方法:配列数式とスピル(Excel 365)
旧来の方法:Ctrl+Shift+Enterで配列数式として入力
Excel 2019以前(および互換性を重視する場面)では、FREQUENCY関数は配列数式として入力する必要があります。
- 結果を出力したいセル範囲(区間配列の要素数+1個のセル)を選択する。例:区間が4個ならE2:E6の5セルを選択
- =FREQUENCY(A2:A51,D2:D5) と入力する(まだEnterは押さない)
- Ctrl+Shift+Enter で確定する
- 数式バーに {=FREQUENCY(A2:A51,D2:D5)} と中括弧が付いて表示されれば成功
配列数式として入力すると、選択した全セルが連動して変更・削除されます。一部のセルだけ変更しようとするとエラーになるため、配列全体を選択してから操作します。
Excel 365のスピル入力(推奨)
Excel 365(Microsoft 365)では動的配列(スピル)に対応しており、単一セルに通常のEnterで入力するだけで隣接セルへ自動的に結果が広がります。
- 結果を出力したい先頭セル(例:E2)を選択する
- =FREQUENCY(A2:A51,D2:D5) と入力し、Enterで確定する
- E2から下方向に区間配列の要素数+1個のセルへ自動的に結果がスピルされる
スピル形式では個々のセルを個別に変更できます。スピル範囲全体を削除したい場合は先頭セルを削除します。
実務シナリオ別パターン
パターン①:テスト成績の分布分析
50人のテスト結果(0~100点)を10点刻みで集計する例です。
区間配列の設定例(D2:D9に入力):
| セル | 区間値(上限) | 対象区間の意味 |
|---|---|---|
| D2 | 10 | 10点以下 |
| D3 | 20 | 11~20点 |
| D4 | 30 | 21~30点 |
| D5 | 40 | 31~40点 |
| D6 | 50 | 41~50点 |
| D7 | 60 | 51~60点 |
| D8 | 70 | 61~70点 |
| D9 | 80 | 71~80点 |
E2セルに =FREQUENCY(A2:A51,D2:D9) と入力してEnterを押すと、E2:E10に10個の度数が返却されます(D2:D9は8要素なので戻り値は9要素。80点超は最終要素に集約)。
活用例:授業後にE列の分布を棒グラフ化して「60点台に集中しているか、二極化しているか」を一目で把握できます。
パターン②:顧客年齢層の分布把握
顧客リスト(500件)の年齢列(B2:B501)を10歳刻みで集計する例です。区間配列に {19, 29, 39, 49, 59, 69} を配置すると、20歳未満・20代・30代・40代・50代・60代・70歳以上の7区間が得られます。
=FREQUENCY(B2:B501,{19,29,39,49,59,69})
配列定数を引数に直接書くこともできます。ただし毎回区間を変更する可能性があるなら、区間値を別セルに書き出してセル参照にする方が保守しやすくなります。
パターン③:商品価格帯の分布分析
ECサイトの購入金額データから、購入単価がどの価格帯に集中しているかを調べる例です。
| 区間値(上限) | 区間の読み方 | 活用シーン |
|---|---|---|
| 1000 | 1,000円以下 | 衝動買い層の把握 |
| 3000 | 1,001~3,000円 | 主力価格帯の確認 |
| 5000 | 3,001~5,000円 | 中価格帯ボリューム |
| 10000 | 5,001~10,000円 | 高額購入層の確認 |
「10,001円以上」の件数は5番目の要素(あふれ)として自動的に返却されます。追加の条件式なしで全価格帯を網羅できる点がFREQUENCY関数の強みです。
パターン④:在庫日数のロングテール分析
倉庫在庫の滞留日数データに対して、7日以内・8~30日・31~90日・91日以上と区切ることで、長期滞留品(デッドストック候補)をカウントできます。
=FREQUENCY(C2:C201,{7,30,90})
返却される4要素のうち最後の要素が「91日以上」の件数となり、デッドストック候補件数を即座に把握できます。
パターン⑤:アンケートのリッカートスケール集計
5段階評価(1~5点)のアンケート結果を区間 {1,2,3,4} で処理すると、各評点の件数が一括で出ます。COUNTIF関数でも同様のことはできますが、FREQUENCY関数なら5セル分の数式を1回の入力で済ませられます。
ヒストグラムとの組み合わせ
FREQUENCY関数の結果(度数列)を選択し、棒グラフを挿入することで度数分布ヒストグラムが完成します。Excel 365の「統計グラフ」→「ヒストグラム」を使う方法もありますが、こちらは区間幅をExcelが自動設定するため、自分で区間を定義したい場合はFREQUENCY関数+棒グラフの組み合わせが柔軟です。
- FREQUENCY関数で度数を出力した列(例:E2:E10)と、区間ラベル列(例:F2:F10)を用意する
- E列とF列を選択して「挿入」→「グラフ」→「集合縦棒」を選ぶ
- 棒と棒の隙間を0にする(系列の書式設定→「要素の間隔」を0%に設定)
- タイトル・軸ラベル・データラベルを追加して完成
正規分布に近い「釣り鐘型」になっているか、左右に偏っていないかを棒の高さで一目確認できるのがヒストグラムの強みです。
COUNTIFSとFREQUENCYの使い分け
区間ごとの件数集計にはCOUNTIFS関数を使う方法もあります。それぞれの特徴を比較します。
| 比較項目 | FREQUENCY | COUNTIFS |
|---|---|---|
| 入力の手間 | 1つの数式で全区間を一括出力 | 区間ごとに1行ずつ式を書く必要がある |
| 区間定義の柔軟性 | 等幅・不等幅いずれも対応。区間値セル参照が容易 | 不等幅でも条件式で自由に設定可能 |
| テキスト条件との組み合わせ | 不可(数値のみ) | 可(文字列・日付・ワイルドカード等) |
| Excel 365スピル対応 | スピルで一括出力可能 | 1セル1条件のため複数行に手動コピーが必要 |
| あふれ要素の自動生成 | 最大値超えの件数が自動で返却される | 最大値超えは別途COUNTIFで式を追加 |
| 使いどころ | 純粋な数値区間の度数分布 | 複数条件や文字列フィルタが必要な場合 |
純粋に「数値の区間ごとの件数が欲しい」だけならFREQUENCY関数が簡潔です。一方、「東京都在住かつ40代の件数」のような多条件集計はCOUNTIFSに軍配が上がります。
よくあるエラーと対処法
| 症状 | 主な原因 | 対処法 |
|---|---|---|
| 全セルが0になる | データ配列の値がテキスト形式の数字(書式が「文字列」になっている) | データ列を選択して「数値に変換」を実行するか、VALUE関数で数値に変換する |
| 合計件数がデータ件数より少ない | 区間配列の範囲が実際のデータ範囲をカバーしていない | 区間配列の最小値と最大値を確認し、データ全体を網羅するよう調整する |
| 旧バージョンで #VALUE! が出る | 配列数式のCtrl+Shift+Enterを忘れた | 出力セル範囲を再選択してCtrl+Shift+Enterで再入力する |
| 一部のセルが空白になる | 配列数式の入力時に選択セル数が足りない | 区間配列の要素数+1個のセルを選択してから入力し直す |
| スピル先にデータがあって#SPILL!が出る | スピル出力先のセルに既存のデータや数式がある | スピル先(出力先の下方向)のセルをクリアする |
| 区間の境界値が意図と違う区間に入る | FREQUENCYは「区間値以下」を前の区間に含める仕様 | 区間値を1引いて調整するか(例:69→70に変更)、意図通りの境界を確認して区間値を設計し直す |
MOS Excel試験でのFREQUENCY出題ポイント
FREQUENCY関数は、MOS Excel 365 エキスパート(MO-211)の「高度な機能を使用した数式およびマクロの作成」領域に関連する高度な配列操作関数として学習対象になります。出題形式マルチプロジェクトでは、指定したデータ範囲と区間配列に対して度数を返す数式を入力する設問が想定されます。
試験時間は50分、採点は1000点満点です。合格点は公表されていませんが550点~850点が目安とされています。学習時間の目安(公式非公表)は、アソシエイト(MO-210)合格後に追加で60~100時間です。
MOS試験 FREQUENCY関連チェックリスト
| 確認ポイント | 操作内容 | 難易度 |
|---|---|---|
| 基本構文の入力 | =FREQUENCY(データ配列, 区間配列)を正確に入力できる | ★☆☆ |
| 区間配列の要素数 | 戻り値の要素数が区間配列の要素数+1になることを理解している | ★★☆ |
| スピル入力 | Excel 365でスピルとして出力できる(Enterだけで確定) | ★★☆ |
| 配列数式入力 | 旧方式でCtrl+Shift+Enterによる配列入力ができる | ★★☆ |
| あふれ要素の理解 | 最後の要素が区間最大値を超えた件数であることを説明できる | ★★☆ |
| 区間境界の仕様 | 区間値以下を前の区間に含める仕様(左開・右閉)を理解している | ★★★ |
| COUNTIFSとの違い | 数値区間の度数分布に特化している点を説明できる | ★★☆ |
まとめ:FREQUENCY関数で業務データの分布を即座に可視化する
本記事のポイントをまとめます。
- FREQUENCY関数の役割:数値データが各区間に何件あるかを一括返却する統計関数。区間配列の要素数より戻り値が1つ多い点が特徴
- 入力方法:Excel 365ではスピルでEnterのみ。旧バージョンではCtrl+Shift+Enterで配列数式として入力する
- 区間境界の仕様:区間値以下が前区間に含まれる(右閉)。境界値の扱いを意識して区間値を設計する
- 実務活用:テスト成績・年齢分布・価格帯・在庫滞留日数など、数値区間の件数集計なら幅広く使える
- ヒストグラムとのセット活用:FREQUENCY関数の度数列から棒グラフ化し、要素の間隔を0にすることで本格的なヒストグラムが完成する
- COUNTIFSとの使い分け:純粋な数値区間の集計はFREQUENCY。文字列や複数条件が絡む場合はCOUNTIFSを選ぶ
- MOS試験との関連:エキスパートレベルの配列関数として、基本構文・スピル入力・区間境界の仕様が中心的な確認ポイント
FREQUENCY関数を使いこなすと、数百件の数値データも区間ごとの件数に瞬時に整理でき、報告書やダッシュボードに「どの層に集中しているか」という分布の視点を加えられます。まず手元のデータで =FREQUENCY(データ範囲, 区間配列) を入力し、スピル出力の感触を確かめてみてください。
PR
FREQUENCY関数を含む統計・集計・配列系関数から検索・文字列・日付関数まで、引数・活用例を網羅した関数リファレンス。Copilot対応で最新のスピル関数も詳しく解説されており、本記事の知識をさらに深めるのに最適な一冊です。
PR
MOS Excel 365エキスパート(MO-211)に対応した公式試験対策テキスト。FREQUENCY関数をはじめとする高度な配列関数・マクロ・高度なグラフ操作まで、試験範囲を網羅した模擬問題で実力を固めたい方に適しています。
▶ 受験料の最新情報は公式サイトの「受験料・価格」(https://mos.odyssey-com.co.jp/exam/examfee.html)でご確認ください。
