Googleスプレッドシートで、下図のように横軸(各ビン)が曜日になっているヒストグラムの作成方法を紹介します。
(※「これは曜日別の集計だからヒストグラムではない」というご批判はごもっともです)
作成の流れは次のようになります。
- 日付のデータから曜日を取得
- 曜日ごとに販売数をカウント
- グラフ(ヒストグラム)にする
日付のデータから曜日を取得
例えば以下のような、ある商品の販売時間の記録があるとします。
まずは日付欄の表示形式を確認
まず、日付のデータ(列A)を日付形式にします。
列Aをクリックした後、「表示形式」→「数字」→「表示形式の詳細設定」→「その他の日付や時刻の形式」と進み、適当な形式を選択してください。(どれを選んでもデータは日付形式になるので大丈夫です)
西暦部分も合っているか確認しておきます。このあと日付から曜日を求めるため、西暦がずれていると曜日もずれてしまうので注意してください。
日付から曜日を表示
列Cに曜日を追加します。
「C2」に「=text(A2,“ddd”)」と入力すると、「A2」の日付2021年2月1日の曜日である月曜日の「月」が表示されます。
(ちなみに「=text(A2,“dddd”)」と入力すれば「月曜日」と表示されます。その他のtext関数についてはこちらを確認してください。)
「=text(A2,“ddd”)」を同じように「C3」以降にも入力すれば、全ての曜日データが取得できますが、実際の使用場面を考えて、ここでは「C2」に、
と入力していきます。
意味は、「A2が空白ならば(=ISBLANK(A2))、空白を表示(=“”)、A2が空白でなければA2の曜日を表示(=text(A2,“ddd”))」となります。
実際の使用場面では、日付(列A)はどんどん追加されていきますが、そのたびに「列C」を入力していくのは面倒なので、あらかじめ列C全体に式を入力しておくということです。
「C2」に「=IF(ISBLANK(A2),“”,text(A2,“ddd”))」を入力したら、「C2」をコピーします。
「Shift」+「Ctrl」+「↓」キーを同時に押して列C全体を選択したら、コピーしたものを貼り付けます。
これで、日付からの曜日入力が完成しました。
曜日ごとに販売数をカウント
ここからは実際にグラフに使用するデータを作っていきます。
まず「列E」に「月火水木金土日」と入力します。
次に「F1」に、
と入力します。
意味は、「列C全体の中で(=C:C)、「月」と一致するものの(“月”)、個数をカウント(=COUNTIF)」です。
入力した結果、月曜日の販売数は「12」と表示されました。
同様に、「=COUNTIF(C:C,“月”)」の”月”をそれぞれの曜日に変換して入力していきます。
これでヒストグラムにするためのデータができました。
グラフ(ヒストグラム)にする
先ほど作ったデータを選択し、
「挿入」→「グラフ」をクリックします。
円グラフが挿入されてしまいましたが、「グラフの種類」から「縦棒グラフ」を選択します。
これでヒストグラムができました。
あとは「グラフエディタ」の「カスタマイズ」からグラフタイトルなどを追加し、見た目を整えてあげれば完成です。
グラフの種類「ヒストグラム」や棒グラフの「集計」で直接ヒストグラムを描くのはやめたほうがいい
グラフの種類「ヒストグラム」を選択した場合
ちなみに、Googleスプレッドシートでは「グラフの種類」で「ヒストグラム」を選択できるので、通常はボタン1つでヒストグラムが作成できます。
しかし、「曜日」のデータの場合はそのまま使おうとすると、横軸が数値になってしまいます。「グラフの種類」としての「ヒストグラム」ではなく、上記のように棒グラフを使った方が早いです。
棒グラフの「集計」機能を使った場合
また、「列C」を選択して棒グラフを挿入し、「集計」にチェックを入れておけば、一見するとヒストグラムができているように見えます。しかし、この場合は、横軸の曜日はカウントされた順番になるので、曜日の順番がずれています。
また、「0」の曜日があるようなデータの場合、その曜日はヒストグラムの横軸には表示されません。
したがって、結局は今回紹介したように、COUNTIF関数で表から集計した後に棒グラフを描く方が正確なヒストグラムを描くことができます。
コメント