エクセルで関数だけを使ってヒストグラムを作りたい

まとめ

=COUNTIFS(範囲, ">=" & セル, 範囲, "<" & セル)
の書式で作れる

説明

問題設定

例えば、次のような状態で格納されている数値のヒストグラムを作るとします。

f:id:miyatsuki_yatsuki:20161218234956p:plain

平均値50, 標準偏差10の正規乱数なので、30~80くらいを範囲とし5区切りのヒストグラムを作ります。

区切りを表すセルを埋める

f:id:miyatsuki_yatsuki:20161219011227p:plain

C列とD列の情報だけあればヒストグラムは作れるのですが、E列のようなラベルを作っておくとグラフが見やすくなります

F列のように 「セル & "~" & セル」というふうに作るとオートフィルで一気にラベルが作れます

条件を満たすセルを数え上げる

ヒストグラムを作るためには、結局条件を満たすセルを数え上げればいいので、countif系の関数を使います。ただ、ヒストグラムの場合「X以上Y以下」と条件が2つになるのでcountifsを使用します。

f:id:miyatsuki_yatsuki:20161219012252p:plain

countifsの書式は
=COUNTIFS(範囲1, 範囲1での条件, 範囲2, 範囲2での条件, ...)
です。

例えばH3のセルには30以上35未満のセルを数えて入れたいのですが、30と35という数字はそれぞれC3とD3セルに入っているので、
= COUNTIFS(A:A, ">=" & C3, A:A, "<" & D3)
とすると30以上35未満のセルを数え上げられます。

COUNTIFSに限った話でもないですが、エクセルで特定のセルとの大小関係をとるときは、"不等号" & セル の書式になります(不等号とセルの文字列連結を行う)

なお、両端のH2とH13のセルはそれぞれ30未満、80以上と条件が一つしかないので(Sが付かない)COUNTIF関数を使っています。

以上でヒストグラムが作れます。 後は棒グラフでも折れ線グラフでも好きな形で表示してください。

なぜ関数にしたかったの…?

エクセルにはもともとヒストグラムを作る機能があるので、そちらでヒストグラムを作ることも可能です。ただ、関数であれば取り回しが楽であるということと、複数のヒストグラムを一気に作りたいときにエクセルの機能だと対応してないという2点において関数でヒストグラムを作る方法を知っていると便利かなと思います