ExcelのFREQUENCY関数の使い方|度数分布表を一発で作る方法

スポンサーリンク

「売上データを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列)意味
59359点以下(45, 55, 52)
69260〜69点(62, 68)
79370〜79点(78, 71, 74)
89180〜89点(83)
(区間外)190点以上(90)

10人分のデータが、5つの区間に振り分けられました。1つの数式で全区間の集計が完了するのがFREQUENCY関数の強みですよ。

バージョン別の入力方法(スピル vs CSE入力)

FREQUENCY関数は配列関数です。Excelのバージョンによって入力方法が異なります。ここが最も注意すべきポイントです。

Microsoft 365 / Excel 2021以降(スピル対応)

スピル(動的配列)に対応しているバージョンでは、操作はシンプルです。先頭セル1つだけを選択して数式を入力し、Enterキーで確定するだけです。

=FREQUENCY(A2:A11, C2:C5)

結果は自動的に下方向のセルへ展開されます。数式バーには波括弧({})は表示されません。

Excel 2019以前(CSE入力が必須)

スピルに対応していないバージョンでは、次の手順で入力します。

  1. 出力先のセル範囲を事前に選択する(区間配列+1行分)。上の例ならD2:D6の5セルを選択
  2. 数式 =FREQUENCY(A2:A11, C2:C5) を入力する
  3. 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〜3930代
40〜4940代
50〜5950代
60以上60代以上

採用計画や人員配置の判断材料として活用できます。

活用例3:ヒストグラムの元データ作成

Excelでヒストグラム(度数分布を棒グラフで表したもの)を作りたいときの下準備にも使えます。

  1. FREQUENCY関数で度数分布表を作成する
  2. 区間ラベルと度数をセットで選択する
  3. 挿入タブから「棒グラフ」を選ぶ

FREQUENCY関数で集計した結果をそのままグラフの元データに使えます。手作業で集計する手間が省けますよ。

FREQUENCY関数とCOUNTIFの使い分け

度数を数えるだけならCOUNTIF関数でもできます。どちらを使うべきか、比較してみましょう。

比較項目FREQUENCYCOUNTIF / 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関数が向いている

売上分析や人事データの集計など、区間ごとの件数を把握したい場面で活躍します。ぜひ試してみてくださいね。

タイトルとURLをコピーしました