いきなり答える備忘録

G Suite・Microsoft 365・LibreOfficeなどに関するメモと日々の実験

(Gスプレッドシート)度数分布を返す関数(FREQUENCY関数)

 Googleスプレッドシートで、度数分布(数値データをいくつかの区間に分類し、それぞれの区間に属するデータの数を数えたもの)を作成するときに使えるFREQUENCY関数についてです。

  • FREQUENCY関数を使って対象データと区間を表す配列を指定することで、度数分布を得ることができます。
  • ヒストグラムを作成する際に便利です。区間の幅を不均一にする場合でも簡単に対応できます。

手順

f:id:accs2014:20200315120539p:plain:right:w650

 B3:C12に商品データが並んでいます。
 一方でF3:F8に価格の区分が並んでいます。これに沿って商品の数をカウントした結果をG3:G8に表示するものとします。

f:id:accs2014:20200315120543p:plain:right:w650

 まず、E3からE7にそれぞれ
100
200
400
600
1000
と入力します。
 これはF3:F8に記されているそれぞれの区間を数値で表現したものとなります。これはFREQUENCY関数に渡す引数となります。

f:id:accs2014:20200315124523p:plain:right:w650

 そしてG3セルに次のように入力します。

=FREQUENCY(C3:C12,E3:E7)

 

f:id:accs2014:20200315120551p:plain:right:w650

 確定するとこうなります。
 第2引数の記し方(解釈)と、第2引数として指定した配列の個数より1つ多い値が返る(G8セルのように、指定した最大の値を超える数値の個数が返る)点について注意が必要です。

 この表をもとにヒストグラムを作成することができます。元データとグラフ機能だけでヒストグラムを作成することもできますが、FREQUENCY関数を使えば上記の例のように区間の幅を不均一にする場合にも容易に対応できます。
 なお、第2引数をどこに置くかが悩ましいところですが、次のように関数内に含めてしまう手もあります。数値の間の区切り記号は「,」でも「;」でも同じ結果になります。

=FREQUENCY(C2:C12,{100,200,400,600,1000})