2025/7/5

度数の算出関数の違い(COUNTIF,COUNTIFS,FREQUENCY)【エクセル】

Thumbnail for 度数の算出関数の違い(COUNTIF,COUNTIFS,FREQUENCY)【エクセル】

はじめに

エクセルには 個数をカウントする関数 が多くあります。 その中で、数値データを 指定した区間ごとにカウントする関数 (COUNTIF, COUNTIFS, FREQUENCY) の違いについてまとめました。 これらの関数は、統計学的に言うと、 「階級ごとの度数を算出する」関数 です。 得られた結果から度数分布表やヒストグラムが作成できます。

ここでは、以下について取り扱います:

  • 関数の使用例
  • 比較表
  • 使い分けの目安

関数の使用例

COUNTIF, COUNTIFS, FREQUENCY それぞれを使った 数値データを区間ごとにカウントする例 を示します。

COUNTIF, COUNTIFS関数は、各区間ごとに関数を使用しますが、 FREQUENCY関数は、1セルのみ に関数を記入するだけですべてのカウント数が得られます
(以下の「計算値を表示」をOFFにするとわかりやすい)。

ABCDEFGHIJKLMNOPQ
10COUNTIF関数COUNTIFS関数FREQUENCY関数
21
31条件累積カウントカウント条件1条件2カウント区間カウント
42<=133<><=1313
53<=241>1<=212 1
63<=373>2<=333 3
73<>81>3<>1 1
84

以降で、各関数ごとの手順の簡単な説明をします。

COUNTIF関数での手順

  1. 区間ごとの条件を定める。
    • 各区間ごとに「Y以下」条件式の文字列を作成する(最後は「空でない」の条件式)。
    • 例: ="<="&1, ="<="&2, ... , <>
    • 記入値の構成: = "<=" (比較演算子の「以下」) & 最大値
  2. COUNTIF関数を用いて累積カウントを求める。
    • 1の条件をCOUNTIF関数に入れ、それぞれのカウント数を取得する。
    • 例: =COUNTIF($A$1:$A$8,F4), =COUNTIF($A$1:$A$8,F5), ..
    • 記入値の構成: =COUNTIF( データ範囲 条件式 )
  3. 累積カウントの差からカウント数を算出する。
    • 2の値を使って、差を算出する。2の値は「Y以下のカウント数」、2の差の値は「 X越え Y以下のカウント数」。
    • 例: =G4, =G5-G4, =G6-G5, ...
    • 記入値の構成: = 累積カウント2 - 累積カウント1
fxCOUNTIF関数
COUNTIF ( 配列, 検索条件)

指定した 配列 データ中で、 検索条件 に合致する個数をカウント する。

配列
: 必須
A1:A5
検索するデータ範囲。
検索条件
: 必須
">=" & E2
カウントする条件。

COUNTIFS関数での手順

  1. 区間ごとの条件式1「X越え」を定める。
    • 各区間ごとに「X越え」条件式の文字列を作成する(最初は「空でない」の条件式)。
    • 例: <>, =">"&P4, =">"&P5, ...
    • 記入値の構成: = ">" (比較演算子の「越え」) & 閾値(最小)
  2. 区間ごとの条件式2「Y以下」を定める。
    • 各区間ごとに「Y以下」条件式の文字列を作成する(最後は「空でない」の条件式)。
    • 例: ="<="&P4, ="<="&P5, ..., <>
    • 記入値の構成: = "<=" (比較演算子の「以下」) & 最大値
  3. COUNTIFS関数を用いて区間ごとのカウント数を算出する。
    • 1と2の条件を満たすカウント数(区間のカウント数)をそれぞれ算出する。
    • 例: =COUNTIFS($A$1:$A$8,K4,$A$1:$A$8,L4), =COUNTIFS($A$1:$A$8,K5,$A$1:$A$8,L5), ...
    • 記入値の構成: =COUNTIFS( データ範囲, 条件式1, データ範囲, 条件式2 )
fxCOUNTIFS関数
COUNTIFS ( 配列1, 検索条件1, 配列2, 検索条件2, ... )

指定した 配列1 データ中で、 検索条件1 に合致する個数をカウント する。
配列とその条件のセット(例:配列2検索条件2)を追加することで、 複数条件を追加設定できる(最大127セット)。

配列1
: 必須
A1:A5
検索条件1で検索するデータ範囲。
検索条件1
: 必須
">=" & E2
カウントする条件1。
配列2
: 任意
A1:A5
検索条件2で検索するデータ範囲。
検索条件2
: 任意
">=" & E2
カウントする条件2。

FREQUENCY関数での手順

  1. 区間を定める数値配列を作成する。
    • 各区間の最大値(「Y以下」のY)の数値配列を作成する。
    • 例: 1, 2, ...
  2. FREQUENCY関数を用いて各カウント数を算出する。
    • 2の数値配列を使い、各区間のカウント数を一気に※ 算出する。
    • 例: =FREQUENCY(A1:A9,P4:P6)
    • 記入値の構成: FREQUENCY( データ範囲, 区間の数値配列)

※スピル機能 / CSEを使用する

FREQUENCY関数の結果は、複数セルに出力 されます。

スピル機能を有するバージョンのエクセルでは、スピル機能が使用されます。
スピル機能のない旧バージョンのエクセルでは、関数の決定時にCtrl + Shift + Enter (CSE) を押す必要があります
Enterのみでは、結果の出力が1つのみになる)。

fxFREQUENCY関数
FREQUENCY ( データ配列, 区間配列)

データ配列 について、区間配列の階級の値を使い度数分布表を作成する。 結果は、区間配列のサイズに応じて下のセルまで広がって表示される (スピル機能使用。旧バージョンのエクセルの場合は、CSEが必要)。

データ配列
: 必須
A2:A9
数値配列。度数分布表の作成に使用する元データ。
区間配列
: 必須
F3:F5
各階級の上限値を並べた数値配列。

比較表

COUNTIF, COUNTIFS, FREQUENCY の比較表は以下の通りです。

関数主な用途条件の設定方法出力形式備考対応バージョン
COUNTIF単一条件でカウント範囲と1つの条件を指定1つの数値=COUNTIF(A2:A10, ">10")区間のカウントは、一度
累積値を求め、その差から求める必要がある
2007~
COUNTIFS複数条件でカウント範囲と条件をペアで複数指定(AND条件)=COUNTIFS(A2:A10, ">10", B2:B10, "<=5")
FREQUENCY数値配列の区間ごとにカウントデータ配列と区間の数値配列を指定数値の配列=FREQUENCY(A2:A10, {10, 20, 30})スピル機能 / CSE使用

使い分けの目安

区間ごとにカウントする関数の使い分けの目安は、 以下の通りです。

  • 全区間の配列から一度に度数を算出したいとき
    • FREQUENCY関数
      (旧バージョンエクセルの使用、他人が編集する場合は、使用者がCSEについての理解しておく必要があるので注意)
  • 各区間ごとに1つの関数を使用して算出したい、スピル機能 / CSEを使用したくないとき
    • COUNTIFS関数
  • 単純な条件指定(「X以下」などの単一条件)でカウントしたいとき
    • COUNTIF関数