• 作成日 : 2025年8月5日

FREQUENCY関数でヒストグラム作成!以上・未満の範囲で頻度を自動集計

エクセルのFREQUENCY関数(読み方:フリークエンシー関数)は、データを範囲ごとに分類し、それぞれの区間に属する値の頻度分布を分析する関数です。

本記事では、FREQUENCY関数の基本的な使い方から、具体的な利用シーン、さらに他の関数と組み合わせた応用テクニックまでを、Excel初心者にも分かりやすく解説します。

この記事を読み終える頃には、FREQUENCY関数を使いこなして、データ分析のスキルを一段と向上させられるようになるはずです。

FREQUENCY関数とは?数値データの頻度分布を正確に集計する

FREQUENCY関数は、指定した数値の範囲(データ配列)内で、特定の区分(区間配列)ごとにデータがいくつ存在するか、つまり数値の頻度分布(度数分布ともいう)を計算する関数です。この関数は、単一のセルに結果を返すのではなく、複数のセルにまたがる「配列」として結果を返します。このため、入力方法に少し特徴があります。

データがどのような値の範囲に集中しているのか、あるいは偏りがあるのかなどを一目で把握できるため、統計的な分析を行う際の第一歩として非常に有効です。

FREQUENCY関数の基本的な書式

FREQUENCY関数の基本的な書式は以下の通りです。

=FREQUENCY(データ配列, 区間配列)
  • データ配列:頻度を求めたい数値データが入力されているセル範囲、または配列を指定します。
  • 区間配列:データの頻度を集計したい区間の「上限値」が入力されているセル範囲、または配列を指定します。

重要な注意点:FREQUENCY関数は配列数式として入力する必要があります。数式を入力した後、Excel 365などの動的配列に対応したバージョンではEnterキーのみで確定できますが、それ以外のバージョンでは、結果を表示するセル範囲を選択した上でCtrl + Shift + Enterキーを同時に押して確定する必要があります。

FREQUENCY関数の使い方:具体的なステップ

それでは、実際にFREQUENCY関数を使ってみましょう。ここでは、テストの点数を例に解説します。

例1:シンプルな頻度分布の作成

以下のテストの点数データがあるとします。

セル点数
A265
A382
A470
A591
A655
A778
A860
A988
A1075
A1198

この点数を「50点以下」「60点以下」「70点以下」「80点以下」「90点以下」「90点より上」の区分で集計したいとします。

ステップ1:区間配列(上限値)の準備

まず、集計したい区間の「上限値」を別のセルに入力します。

たとえば、セルC2からC6に以下のように入力します。

セル上限値
C250
C360
C470
C580
C690

ステップ2:結果表示範囲の選択

次に、FREQUENCY関数の結果を表示したいセル範囲を選択します。区間配列のセルの数より1つ多いセルを選択します。

今回の例では、区間配列(C2:C6)には5つのセルがあるので、結果表示範囲として6つのセル(例:D2からD7)を選択します。

ステップ3:数式の入力と確定

D2からD7までのセルを選択したまま、D2セルに以下の数式を入力します。

=FREQUENCY(A2:A11, C2:C6)

数式を入力したら、Ctrl + Shift + Enter キーを同時に押して確定します。

結果

上限値(区間配列)頻度(結果)
501
602
702
802
902
(それ以上)1
  • 「50」の行の「1」は、50点以下のデータが1つ(この例のデータには該当なし。たとえば、データに45点があれば、それがカウントされることを示します)であることを示します。
  • 「60」の行の「2」は、50点を超え60点以下のデータが2つ(65点、60点)であることを示します。
  • 最後の「1」は、90点より大きいデータが1つ(98点)であることを示します。FREQUENCY関数は、区間配列の最後の値より大きいデータを、常に最後の区間として数えます。

例2:区間配列のルール

FREQUENCY関数は、区間配列の各値を「その値以下」として扱います。

  • 区間1:データ <= 区間配列1
  • 区間2:区間配列1 < データ <= 区間配列2
  • 区間3:区間配列2 < データ <= 区間配列3
  • 最後の区間:区間配列の最後 < データ (区間配列に指定されたどの値よりも大きいデータ)

このルールを理解しておくことが、正確な頻度分布を得るために重要です。

FREQUENCY関数の注意点と特性

  • 配列数式:繰り返しになりますが、動的な配列数式に対応していない古いバージョンのExcelでは、必ずCtrl + Shift + Enterキーを押して確定してください。これにより、複数のセルに結果が一度に表示されます。一度確定すると、一部のセルだけを編集したり削除したりすることはできません。編集する場合は、配列数式を含むセルのブロック全体を選択し、数式バーで変更を加えてからCtrl + Shift + Enter キーを押して確定します。
  • ソート不要:データ配列が昇順や降順にソートされている必要はありません。FREQUENCY関数が自動で処理してくれます。
  • 区間配列はソート推奨:区間配列は昇順で入力することを強く推奨します。降順で入力すると、期待通りの頻度分布が得られない、または正しく計算されない可能性があります。
  • 空白セルと文字列:データ配列内の空白セルや文字列は無視されます。
  • エラー値:データ配列内にエラー値や文字列が含まれている場合、その部分は自動的に無視されます。 FREQUENCY関数は数値データのみを扱うからです。もしこれらのデータを含むセルをカウントに含めたい場合は、事前にフィルタリングしたり、IFERROR関数などでエラー値を処理したりする必要があります。
  • 区間配列より少ない区間を指定した場合:Excel 365などの動的配列に対応していない旧バージョンのExcelでは、もし区間配列が5つの要素なのに、結果表示範囲を3つしか選択しなかった場合、その3つまでしか結果が表示されません。選択されているセル数が足りないため、残りの計算結果の表示は省略されます。旧バージョンのExcelでは、必ず区間配列の要素数+1のセルを選択してください。Excel 365などの動的配列に対応したバージョンでは、結果を表示したい範囲の左上セルに数式を入力し、Enterキーで確定することで、自動的に適切な範囲に結果が展開されます。

これらの基本と特性を理解することで、FREQUENCY関数を正しく、かつ効率的に活用できます。

FREQUENCY関数の利用シーン:ビジネスや学術分野での活用例

FREQUENCY関数は、さまざまなデータの中から「分布の傾向」を把握したい場合に非常に有効です。ここでは、ビジネスや学術分野における具体的な利用シーンをいくつかご紹介します。

1. 売上データの分析と価格帯戦略

小売業やECサイトなどでは、商品の売上データから顧客がどのような価格帯の商品を購入しているのかを分析することが重要です。

  • 売上価格帯の分布:ある期間の全商品の売上金額データから、「1,000円以下」「1,001円~3,000円」「3,001円~5,000円」といった価格帯ごとの販売件数を集計します。例:=FREQUENCY(売上金額データ, 区間上限値)これにより、どの価格帯の商品が最も売れているのか、あるいは売上が低い価格帯はどこかなどを把握し、プロモーション戦略や新商品開発の参考にできます。

2. 成績評価と学力分布

教育現場や研修の成績分析において、FREQUENCY関数はテストの点数などの数値データから特定の点数帯に属する人数を効率的に集計し、生徒や受講者の学力分布を把握するのに役立ちます。

  • テストの点数分布:クラス全体のテストの点数データから、「50点未満」「50点以上60点未満」「60点以上70点未満」といった点数帯ごとの人数を集計します。 これにより、点数が特定の範囲に集中しているか、平均点がどこにあるかなどを視覚的に理解し、指導方針の見直しや補習の必要性の判断に役立てられます。

3. アンケート結果の集計と傾向分析

顧客満足度調査や従業員意識調査など、数値で回答を得るアンケートの集計においても、回答の分布を把握するのにFREQUENCY関数は有効です。

  • 満足度評価の分布:5段階評価の満足度アンケートで、「1(不満)」から「5(満足)」までの回答数の分布を把握します。例:=FREQUENCY(回答データ, {1;2;3;4;5})これにより、回答がどの評価に偏っているのか、不満や満足の割合はどの程度かなどを明確にし、サービス改善や施策立案に活かせます。

4. 在庫管理と需要予測

製造業や小売業において、商品のサイズや重量、消費量などのデータ分布を把握することは、効率的な在庫管理や需要予測に繋がります。

  • 商品サイズの分布:特定の商品のサイズ(例:S, M, L, XLを数値1〜4でコード化)の販売実績から、どのサイズが最も需要が高いかを把握します。例:=FREQUENCY(販売されたサイズコードの範囲, {1;2;3;4})
  • 過去の消費量データ:月ごとの消費量データから、消費量の頻度分布を把握し、発注量の最適化や品切れ防止に役立てます。例:=FREQUENCY(月ごとの消費量データ, 消費量区間上限値)

5. 品質管理と不良品分析

製造プロセスにおける製品の寸法、重さ、温度などの測定値の分布を分析することで、品質のばらつきや不良品発生の原因特定に役立ちます。

  • 製品寸法の許容範囲チェック:製造された製品の寸法測定値のデータから、設計上の許容範囲内に収まっているものの頻度を把握します。 特定の範囲外に多く分布している場合、製造プロセスの調整が必要である可能性を示唆します。例:=FREQUENCY(寸法測定値データ, 許容範囲上限値)

6. 人事管理と従業員データ分析

従業員の年齢、勤続年数、給与水準などの分布を分析することで、人事戦略の立案に役立てられます。

  • 従業員の年齢層分布:社員の年齢データから、「20代」「30代」「40代」といった年齢層ごとの従業員数を集計します。 これにより、組織の年齢構成を把握し、人員配置やキャリア開発プログラムの計画に役立てられます。例:=FREQUENCY(従業員年齢データ, 年齢層上限値)

このように、FREQUENCY関数は、データの塊から有意義な情報を引き出し、さまざまな意思決定をサポートするための強力なツールとして活用できます。

FREQUENCY関数の応用:グラフ作成と組み合わせ技

FREQUENCY関数で集計した頻度分布は、単なる数値の羅列ではなく、グラフとして可視化することで、データの傾向をより直感的に把握できるようになります。また、他のExcel関数と組み合わせることで、さらに高度なデータ分析が可能になります。

1. 頻度分布をグラフで可視化する(ヒストグラム作成)

FREQUENCY関数で得られた頻度分布は、ヒストグラムと呼ばれるグラフで表現するのが一般的です。ヒストグラムは、データの分布を棒グラフ形式で視覚的に示すものです。

ヒストグラムの作成手順
  1. FREQUENCY関数で頻度分布を計算する:前述の「区間配列」と「結果配列」を用意し、FREQUENCY関数で頻度を計算しておきます。
  2. データと結果を選択する:区間配列の列(上限値のラベル)と、FREQUENCY関数の結果(頻度)の列を選択します。 (例:上記例のC2:C6とD2:D7)
  3. グラフの挿入
    • データを選択し、「挿入」タブの「おすすめグラフ」を選択します。または「挿入」タブから「統計グラフ」をクリックし、「ヒストグラムの挿入」を選択します。
    • 初期状態では棒の間に間隔があるため、ヒストグラムらしく見せるために調整します。
    • グラフの棒を右クリックし、「データ系列の書式設定」を選択します。
    • 「系列のオプション」で「要素の間隔」を「0%」に設定します。
    • 必要に応じて、棒の境界線を設定すると見やすくなります。

これにより、データの分布が棒グラフとして表示され、どの区間にデータが集中しているか、外れ値はどのくらいあるかなどが一目で分かるようになります。

2. データ分析ツール「ヒストグラム」との比較

Excelには、FREQUENCY関数を使わずにヒストグラムを作成できる「データ分析」ツールもあります。

データ分析ツールのヒストグラム機能
  • 「データ」タブの「分析」グループにある「データ分析」をクリックします。(「データ分析」がない場合は、Excelのオプションから「アドイン」→「分析ツール」を有効にする必要があります。)
  • 「ヒストグラム」を選択し、入力範囲(データ配列)、データ区間(区間配列)、出力オプション(出力先)などを設定します。

FREQUENCY関数とデータ分析ツールのヒストグラム機能の使い分け

  • FREQUENCY関数
    • 生データの変更に合わせて頻度分布を自動的に更新する必要がある場合や、複雑な区間設定が必要な場合に適しています。
    • 数式としてワークシート上に残るため、元データが変更された際に自動的に結果が更新されます。
    • より細かいカスタマイズや、他の関数との組み合わせで柔軟な分析が可能です。
    • 配列数式の知識が必要です。
  • データ分析ツールのヒストグラム
    • ヒストグラムと頻度分布を一度だけ簡単に作成したい場合、ソースデータが頻繁に変更される可能性が低い場合、またはツールを手動で再実行しても問題ない場合に適しています。
    • 結果は静的な値として出力されるため、元データが変更されても自動更新されません。
    • 複雑な設定なしで、手軽に標準的なヒストグラムを作成したい場合に便利です。

どちらを使うかは、目的や習熟度に応じて選択すると良いでしょう。

3. その他の関数との組み合わせ:条件付き頻度集計

FREQUENCY関数単独では難しい「特定の条件を満たすデータのみの頻度集計」を行う場合、他の関数との組み合わせが必要です。

例:特定の部署の従業員の年齢分布を調べる

部署名と年齢のデータがあり、たとえば「営業部」の従業員の年齢分布を知りたい場合。

直接FREQUENCY関数で条件を指定することはできませんが、以下のようなアプローチが考えられます。

  • 補助列を使う方法
    1. まず、新しい列(例:D列)にIF関数を使って、条件に合う年齢データだけを抽出します。
      =IF(B2=”営業部”, C2, “”) (B列に部署名、C列に年齢がある場合)
    2. D列に営業部の年齢データだけが抽出されたら、そのD列をデータ配列としてFREQUENCY関数を適用します。
      =FREQUENCY(D2:D100, 区間配列)
      この方法は分かりやすく、初心者にもおすすめです。
  • 配列数式とIF関数を組み合わせる方法(より高度):
    =FREQUENCY(IF(部署列=”営業部”, 年齢列), 区間配列)
    この数式全体を配列数式としてCtrl + Shift + Enterで確定します。IF関数で条件を満たす年齢だけを抽出し、それをFREQUENCY関数のデータ配列として渡しています。

4. 複数条件での頻度集計(より複雑なケース)

さらに複雑な複数条件で頻度集計を行いたい場合、FREQUENCY関数単独での解決は困難になります。

このような場合は、以下のようなアプローチを検討します。

  • SUMPRODUCT関数と論理条件:FREQUENCY関数とは異なるアプローチになり、複数の条件を満たすセルが乗算され、結果が加算されます。たとえば、2つの条件に合うデータの売上金額を抽出して合計したり、加重平均を計算したりする際に非常に強力です。ただし、FREQUENCY関数のような「区間」では、直接集計ができません。
  • Power Queryやピボットテーブル:大量のデータや複雑な条件での集計・分析が必要な場合は、ExcelのPower Query機能やピボットテーブルを活用する方が効率的で柔軟性が高まります。これらは、データを整形し、多様な集計を行うための高度なツールです。

FREQUENCY関数の応用は、データ分析の幅を広げ、より複雑な課題にも対応できるようになります。これらのテクニックを習得することで、Excelを単なる表計算ツールとしてではなく、強力なデータ分析ツールとして活用できるでしょう。

FREQUENCY関数使用時の注意点とトラブルシューティング

FREQUENCY関数は非常に便利な一方で、配列数式という特性上、通常の関数とは異なる注意点やトラブルシューティングのポイントがあります。

1. 配列数式の入力と編集

最も頻繁に遭遇する問題は、配列数式としての確定忘れです。

  • 問題:数式を入力した後、Enterキーを押して確定してしまい、結果が1つのセルにしか表示されない、または#VALUE!エラーが出る。
  • 解決策:
    1. FREQUENCY関数の結果を表示したいすべてのセル(区間配列の数+1)を選択します。
    2. 数式バーで数式を編集状態にします(範囲を選択した状態で数式バーをクリックするか、F2キーを押してください)。
    3. Ctrl + Shift + Enterキーを同時に押して確定します。数式が{}で囲まれていればOKです。

配列数式は一度確定すると、その一部だけを削除したり編集したりできません。

  • 問題:配列数式の一部だけを削除しようとすると、「配列の一部を変更することはできません。」というエラーが表示される。
  • 解決策:配列数式が入力されているすべてのセルを選択し、Delキーを押してすべて削除するか、数式バーで数式全体を編集してください。

2. 区間配列の正しい設定

区間配列の設定が不適切だと、期待通りの頻度分布が得られません。

  • 問題:区間配列の並び順が昇順ではない。
  • 解決策:区間配列は必ず昇順で入力してください。たとえば、{30;10;20}のような順序だと正しく計算されません。{10;20;30}のように並べましょう。
  • 問題:意図した区間の境界と結果が合わない。
  • 解決策:FREQUENCY関数は区間配列の値を「その値以下」としてカウントします。
    例:区間配列{10, 20, 30}

    • 最初の区間:<=10
    • 2番目の区間:10 < データ <= 20
    • 3番目の区間:20 < データ <= 30
    • 最後の区間:>30 (区間配列の最後の値より大きいデータ) このルールを再確認し、必要に応じて区間配列の値を調整してください。

3. データ型とエラー値の扱い

  • 問題:データ配列に文字列やエラー値が含まれている場合に、その部分が無視されてしまう。
  • 解決策:FREQUENCY関数は数値データのみを扱います。文字列やエラー値は自動的に無視されます。もしこれらのデータを含むセルをカウントしたい場合は、事前にフィルタリングしたり、IFERROR関数などでエラー値を処理したりする必要があります。

4. グラフ化の際の注意点

  • 問題:ヒストグラムの棒が離れて表示される。
  • 解決策:グラフの棒の「要素の間隔」を「0%」に設定することで、ヒストグラムらしい連続した表示になります。

5. FREQUENCY関数で「0」が返される場合

  • 問題:特定の区間の頻度が「0」と表示される。
  • 解決策:これは問題ではありません。データ配列に、その区間に該当するデータが一つもなかったことを意味します。データが非常に少ない場合や、区間設定が細かすぎる場合に起こりやすい現象です。

6. 大量のデータ処理

非常に大量のデータ(数万行以上)を処理する場合、FREQUENCY関数を含む配列数式は再計算に時間がかかることがあります。

  • 解決策:データのサイズが大きい場合は、Power Query、ピボットテーブル、あるいはVBA(Visual Basic for Applications)を利用するなど、より効率的な処理方法を検討することも視野に入れましょう。

これらの注意点とトラブルシューティングのヒントを頭に入れておくことで、FREQUENCY関数をスムーズに使いこなし、データ分析の精度と効率を高められます。


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。

関連記事