「売上データを1万円刻みで区切って、件数の分布を見たい」。Excelでデータ分析をしていると、こんな場面が出てきますよね。
COUNTIF関数で1区間ずつ条件を書く方法もあります。ただ、区間が多いと数式がどんどん増えて手間がかかります。
そんなときに便利なのがExcelのFREQUENCY関数です。区間の上限値を指定するだけで、度数分布(データが各区間に何個あるかの集計)を一括で返してくれますよ。
この記事では、FREQUENCY関数の基本から実務での活用パターンまで解説します。
ExcelのFREQUENCY関数とは?
FREQUENCY関数は、データが指定した区間ごとに何個あるかを数えて、度数分布表を作る関数です。
たとえば、テストの点数データを「0〜59点」「60〜69点」「70〜79点」のように区切って、各区間の人数を一度に出せます。通常の関数は1つのセルに1つの結果を返します。一方、FREQUENCY関数は複数セルにまとめて結果を返す「配列関数」です。
構文
=FREQUENCY(データ配列, 区間配列)
引数
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| データ配列 | 必須 | 度数を求めたいデータのセル範囲 |
| 区間配列 | 必須 | データをグループ化する区間の上限値 |
戻り値のポイント
FREQUENCY関数の戻り値は、区間配列の要素数 +1個 の縦配列です。
たとえば区間配列に {60, 70, 80} を指定した場合、結果は4個になります。
| 結果の位置 | 意味 |
|---|---|
| 1番目 | 60以下のデータ数 |
| 2番目 | 61〜70のデータ数 |
| 3番目 | 71〜80のデータ数 |
| 4番目 | 81以上のデータ数 |
最後の1個は「最大区間を超えたデータの数」です。出力先のセル数が足りないと結果が欠けるので注意しましょう。
境界値の仕様
FREQUENCY関数は「以下(<=)」で区間を区切ります。
区間配列に 70 を指定すると、70は「70以下」のグループに入ります。「70未満」ではありません。この仕様は変更できません。「未満」で区切りたい場合はCOUNTIFS関数を使いましょう。
FREQUENCY関数の基本的な使い方
実際にFREQUENCY関数を使って度数分布表を作ってみましょう。
サンプルデータ
セルA2:A11に、10人分のテストの点数が入っています。
| A列(点数) |
|---|
| 45 |
| 62 |
| 78 |
| 55 |
| 83 |
| 71 |
| 90 |
| 68 |
| 52 |
| 74 |
区間の上限値として、セルC2:C5に 59, 69, 79, 89 を入力しておきます。
数式の入力手順
結果を表示するセルD2を選択し、次の数式を入力します。
=FREQUENCY(A2:A11, C2:C5)
結果は5行分(区間4つ + 区間外1つ)に出力されます。
| 区間(C列) | 度数(D列) | 意味 |
|---|---|---|
| 59 | 3 | 59点以下(45, 55, 52) |
| 69 | 2 | 60〜69点(62, 68) |
| 79 | 3 | 70〜79点(78, 71, 74) |
| 89 | 1 | 80〜89点(83) |
| (区間外) | 1 | 90点以上(90) |
10人分のデータが、5つの区間に振り分けられました。1つの数式で全区間の集計が完了するのがFREQUENCY関数の強みですよ。
バージョン別の入力方法(スピル vs CSE入力)
FREQUENCY関数は配列関数です。Excelのバージョンによって入力方法が異なります。ここが最も注意すべきポイントです。
Microsoft 365 / Excel 2021以降(スピル対応)
スピル(動的配列)に対応しているバージョンでは、操作はシンプルです。先頭セル1つだけを選択して数式を入力し、Enterキーで確定するだけです。
=FREQUENCY(A2:A11, C2:C5)
結果は自動的に下方向のセルへ展開されます。数式バーには波括弧({})は表示されません。
Excel 2019以前(CSE入力が必須)
スピルに対応していないバージョンでは、次の手順で入力します。
- 出力先のセル範囲を事前に選択する(区間配列+1行分)。上の例ならD2:D6の5セルを選択
- 数式
=FREQUENCY(A2:A11, C2:C5)を入力する - Ctrl + Shift + Enter で確定する(Enterだけでは不可)
正しく入力できると、数式バーに {=FREQUENCY(A2:A11, C2:C5)} と波括弧が自動で付きます。
よくある失敗:先頭セルだけでEnter
Excel 2019以前で先頭セル1つだけを選択してEnterを押すと、最初の区間の度数だけが表示されます。残りの区間は空のままです。
「数式は合っているのに結果が1つしか出ない」。そんなときはCSE入力ができていない可能性が高いです。出力先のセル範囲を選択してからCtrl+Shift+Enterをお試しくださいね。
FREQUENCY関数の実務活用例
基本がわかったところで、実務でよく使うパターンを紹介します。
活用例1:売上データの価格帯別集計
商品の売上データ(例:A2:A50に売上金額)を価格帯ごとに集計する場面です。
区間配列に {10000, 30000, 50000, 100000} を設定します。
=FREQUENCY(A2:A50, {10000, 30000, 50000, 100000})
結果は5つの区間に分かれます。
| 区間 | 意味 |
|---|---|
| 1万円以下 | 低価格帯 |
| 1万1円〜3万円 | 中価格帯 |
| 3万1円〜5万円 | 高価格帯 |
| 5万1円〜10万円 | プレミアム帯 |
| 10万円超 | 超高額帯 |
価格帯ごとの販売件数がひと目でわかります。商品戦略の検討に役立ちますよ。
活用例2:従業員の年齢分布
人事データから年齢の分布を把握する場面です。区間配列に {29, 39, 49, 59} を設定すると、年代別の人数が出ます。
=FREQUENCY(B2:B100, {29, 39, 49, 59})
| 区間 | 意味 |
|---|---|
| 29以下 | 20代以下 |
| 30〜39 | 30代 |
| 40〜49 | 40代 |
| 50〜59 | 50代 |
| 60以上 | 60代以上 |
採用計画や人員配置の判断材料として活用できます。
活用例3:ヒストグラムの元データ作成
Excelでヒストグラム(度数分布を棒グラフで表したもの)を作りたいときの下準備にも使えます。
- FREQUENCY関数で度数分布表を作成する
- 区間ラベルと度数をセットで選択する
- 挿入タブから「棒グラフ」を選ぶ
FREQUENCY関数で集計した結果をそのままグラフの元データに使えます。手作業で集計する手間が省けますよ。
FREQUENCY関数とCOUNTIFの使い分け
度数を数えるだけならCOUNTIF関数でもできます。どちらを使うべきか、比較してみましょう。
| 比較項目 | FREQUENCY | COUNTIF / COUNTIFS |
|---|---|---|
| 入力の手間 | 1つの数式で全区間を一括出力 | 区間ごとに個別に数式を入力 |
| 境界値の柔軟性 | 「以下」固定 | 「未満」「超」「以上」など自由に設定可 |
| 複数条件 | 対応不可 | COUNTIFS関数で対応可 |
| 旧バージョン対応 | CSE入力が必要 | すべてのバージョンで同じ操作 |
| 連続区間の効率 | 高い(一括) | 低い(1つずつ) |
FREQUENCY関数が向いているケース:
- 区間が多い度数分布表を素早く作りたいとき
- 等間隔の区間でデータの分布を把握したいとき
COUNTIF関数が向いているケース:
- 「80点未満」のように「未満」で区切りたいとき
- 複数条件(年齢かつ部署など)で絞り込みたいとき
- Excel 2019以前でCSE入力を避けたいとき
迷ったら、シンプルな度数分布ならFREQUENCY関数、条件が複雑ならCOUNTIFSと覚えておくとよいですよ。
よくあるエラーと対処法
FREQUENCY関数はエラーが出にくい関数です。ただし、意図しない結果になるケースがあるので確認しておきましょう。
結果が1つしか表示されない
Excel 2019以前で、先頭セルだけを選択してEnterで確定した場合に起こります。
対処法: 出力先のセル範囲(区間数+1行分)をすべて選択してから、Ctrl+Shift+Enterで確定し直してください。
すべての結果が0になる
データ配列に数値が含まれていない場合に起こります。FREQUENCY関数は空白セルやテキストを無視します。数値が1つもなければすべて0を返します。
対処法: データ配列のセルが「数値」として入力されているか確認しましょう。見た目は数字でも文字列として入力されているケースがあります。セルの表示形式を「数値」に変更してみてください。
区間の境界値がずれている
「70点未満」のつもりで区間配列に 70 を入れると、70点は「70以下」に含まれます。FREQUENCY関数の境界値は「以下」固定です。
対処法: 「70点未満」にしたい場合は、区間配列に 69 を指定します。またはCOUNTIFS関数で "<70" のように条件を指定できますよ。
まとめ
ExcelのFREQUENCY関数は、データの度数分布を一括で集計できる便利な配列関数です。
押さえておきたいポイント:
- 構文は
=FREQUENCY(データ配列, 区間配列)の2引数 - 戻り値は区間配列の要素数+1個(最後は区間外のカウント)
- 境界値は「以下(<=)」で固定。「未満」には対応していない
- Microsoft 365 / Excel 2021はEnterだけでOK。Excel 2019以前はCtrl+Shift+Enter(CSE入力)が必要
- シンプルな度数分布ならFREQUENCY関数、条件が複雑ならCOUNTIFS関数が向いている
売上分析や人事データの集計など、区間ごとの件数を把握したい場面で活躍します。ぜひ試してみてくださいね。
