Googleフォームをスプレッドシートに自動集計して作成する睡眠日誌テンプレート
不眠症に悩み、手書きも嫌いな僕は、中途覚醒を記録できるアプリが見つからなかったので、Googleスプレッドシートでガントチャート付き睡眠日誌をDIYしました。
しかし、僕は横着者なので表への時間の入力すらめんどくさく、Googleフォームを使って自動入力することにしました。
前回の記事(手動入力版テンプレート)
スプレッドシートでの時間の扱い方やFILTER関数について調べながら、Googleフォームをスプレッドシートに自動集計して作成する睡眠日誌のDIYになんとか成功しました。
特徴
寝るときや起きたときに、スマホからGoogleフォームの送信ボタンをクリックすると、睡眠日誌に就寝時間と起床時間が自動入力される
自動入力された時間から、30分単位のガントチャートが自動生成される
中途覚醒した時間や睡眠薬を使用した時間が、ガントチャート上にブロットされる
A4横向きにモノクロ印刷すると診察の際に見てもらえる
作成したスプレッドシートは公開してるので、使ってみたいという方は、ご自身のGoogleドライブにコピーして、ご自由にカスタマイズして下さい。
2024/08/29 追記
上記テンプレートの共有設定が消えていたので、再度「誰でも閲覧可」に設定しました。ご連絡くださったMさん、ありがとうございます。
使用方法
準備
こんな感じのGoogleフォームを作って、ショートカットをスマホのホーム画面に追加します。
回答集計用のスプレッドシートに、テンプレートの「睡眠日誌」シートをコピーします。フォームのリンクが貼られたシートの名前を「フォームの回答1」から「res」に変更します。(数式をすっきりさせて見通しよくするためです)
使い方
寝るときにフォームで「寝る」を選択して送信します。一番うしろの「寝る」タイムスタンプが就寝時間になるので、気楽に押して下さい。
目が覚めたらフォームで「起きた」を選択して送信します。一番うしろの「起きた」タイムスタンプが起床時間になります。その前にタイムスタンプがあれば中途覚醒時間として抽出されます。
睡眠薬は「睡眠薬の使用」ボタンを使います。一晩に複数回送信された場合はエラーを返します。
使った関数や機能
ガントチャートの自動生成や中途覚醒時間等のプロットの方法は前記事に書きました。
スプレッドシートでの日付や時間の扱い方
睡眠日誌では、夜の時間設定用のB2,C2セルとガントチャートの時間軸のU6:AZ6セルは、1989/12/30の時間になっています。それをA列の日にち、2024/3/08 00:00:00に足してやることで、計算式に使用しています。
使用する関数によっては、日時形式ではなくシリアル値で返ってくることがあります。その場合は、表示形式>数字>カスタム日時 から見やすい日時形式にします。
日付や時間とシリアル値の関係は、ひらちんさんの記事がわかりやすかったです。
タイムスタンプの抽出にはFILTER関数を使用
タイムスタンプから就寝時間の抽出には、FILTER関数を使用しています。
夜の始まりの時間以上、終わり時間以下、キーワード「寝る」を条件にしてタイムスタンプを抽出します。そのうちの一番大きなものをMAX関数を使ってセルに反映するといった感じです。
中途覚醒時間には、同じくFILTER関数で抽出してから、SMALL関数でn番目に小さな時間を選んでます。
FILTER関数の使い方はOpenChatさんの記事がわかりやすかったです。
最後に
睡眠日誌を2週間強つけてみたら、睡眠を客観的に見直すきっかけになりました。僕の場合は運動と中途覚醒は連動してなさそうだなとか、いろいろ気づくことがあります。
もっと長期間のデータになれば、より多くの発見がありそうなので、入力の省力化ができて助かりました。Googleフォーム便利だなー
最後まで読んでくださってありがとうございました。皆さんによい睡眠が訪れますように。