見出し画像

自動時間計測でカンタンに読書を習慣化【Notionテンプレ配布】

こんにちは!Notionを全力で広めている山田です。
今回は時間計測できる読書管理テンプレート「自動本棚」をご紹介します。

みなさん、突然ですが読書してますか?

ここまで足を運んでくれた方は、おそらく読書をよくされる方なんじゃないでしょうか。
もしくは今そんなに本を読んでいない方でも、「読書を習慣にしたい!」って方が多いのかなと思います。

読書を習慣にしたい方は多い
読書を習慣にしたい方は多い

じゃあ自分がどれぐらい読書に時間を充てているか、しっかり把握できている方ってどれぐらいいらっしゃいますか?
一冊読むのにどれぐらい時間がかかっているか、月にどれぐらい読書に時間を充てられているか…。

恐らくちゃんと把握できている方は少ないと思います。
これはとってももったいない!

読書時間を見える化してどんどん積み上げていくことで、読書はもっと楽しくなります。

習慣化したい方には尚更必要です!
積み上げていく数値があるかないかで習慣化の達成率は全く変わってくるんです。

積み上げた時間を見える化することは大事
積み上げた時間を見える化することは大事

というのも、まさに僕がそうでした。

昔は本を読むのってあまり得意ではなかったんですよね。
買ったは良いものの中々手を付けられなくて放置している本が何冊もありました。

これじゃいかんなと思い習慣化の方法を色々と探した結果、辿り着いたのが「読書時間の記録」という方法。
数値を積み上げていくのが楽しくて、自然と読書が習慣化していつの間にか本を読むことが好きになっていました🎉
ほんと習慣化の仕組みづくりって大切なんです。

同じような方も多いんじゃないかなと思い、以前に一度Xで欲しい方に投げかけてみたら大変反響をいただけて、最終的には100名以上の方にテンプレートを配布させていただきました。

今回のテンプレートは過去にXで配布したもののリメイク版です。
この時はボタンで時間計測を実行させていましたが、今回はオートメーション機能を用いて文字通り1クリックで時間計測できるようにしています。

時間計測の仕組みは他の用途にもかなり応用が効くものなので、作り方のポイントも解説しています。
この仕組みをちゃんと解説しているところは他にありません。
Notionの構築に興味がある方はぜひページの作り方もご確認ください!

早く使ってみたい!」という方は、一番下までスクロールしてリンクから複製していただければOKです。

それではいきましょう🦜🦜🦜

▼ Notionの始め方や基礎から学びたい方はこちら!


1.読書管理テンプレで実現できること


まずはこちらの動画でページの全体像と実現できることをご確認ください。

動画で見ていただいたとおり、チェックをつけるだけで簡単に時間計測ができちゃいます!

さらにページを開けば読書記録の日時も保存されていますし、気になったことは好きにメモを取ることができます。
本って読んだ時の状況によっても感想が変わるから、その時その時の感想を残しておけるのはとっても良いですよね。見返すと自分の変化がよく分かります。

週別・月別・本別で読書時間もすぐに確認できるので習慣化ともとっても相性が良いです!

本別の読書時間を振り返ると、

✅ 特に読んでいる本はどんなカテゴリか
✅ 読むスピードが早い本はどんなカテゴリか

といった、意外と気づいていなかったことも分かるので面白いです。

ぜひこちらのテンプレートを使って、読書生活をより楽しく価値の高いものにしていってください!

🐣🐣🐣

2.ページの作り方解説


ではページの作り方を見ていきましょう!
今回はすべて説明すると相当長くなってしまうのでポイントだけ解説していきます。

作り方はいいからテンプレートが欲しい!」って方は一番下まで一気に進んでしまってOKです。
テンプレート複製する前には「❤️(ハートマーク)」だけ忘れずにお願いしますね!

ページの作り方は以下の3ステップで進めていきます。

1. 4つのデータベース
2. 時間計測の仕組み
3. ページ構成

🐣🐣🐣

2−1. 4つのデータベース

データベースは以下の4つを用意します。

1️⃣ 本棚DB
 本の情報を管理するためのデータベース

2️⃣ 日別DB
 日別の読書時間を集計するためのデータベース

3️⃣ 時間計測DB
 読書時間を保存するためのデータベース

4️⃣ BookNotionDB
 BookNotionと連携するためのデータベース

1️⃣ 本棚DB

本棚DBの全体像
本棚DBの全体像

必須のプロパティは3つだけです。
・読書時間
・時間計測DBとのリレーション
・ID集

上記以外は自分の好みに合わせて自由にカスタマイズしてください!

🐣🐣🐣

2️⃣ 日別DB

日別DBの全体像
日別DBの全体像

このデータベースで毎日の読書時間を集計します。
手間をかけずに集計するための仕組みとして、毎日の繰り返しテンプレートを設定しています。

集計用のデータベースなので、こちらはカスタマイズせずにそのまま利用してください!

🐣🐣🐣

3️⃣ 時間計測DB

時間計測DBの全体像
時間計測DBの全体像

このデータベースを利用することで時間計測を自由に行うことができます。

詳細は次のステップで説明しますが、こちらもカスタマイズする必要はないのでそのまま利用してください!

🐣🐣🐣

4️⃣ BookNotionDB

BookNotionDBの全体像
BookNotionDBの全体像

BookNotionと連携するために必要なデータベースです。
名称など一切変えずにそのまま利用してください!

🐣🐣🐣

2−2. 時間計測の仕組み

今回のテンプレートにおける一番の肝!
時間計測の仕組みについて以下の流れで説明していきます。

1️⃣ 時間計測の仕組みを構築
 リレーションとIDの活用

2️⃣ 各ページの属性(開始日時 or 終了日時)を判定
 関数2.0の活用
 最も複雑で分かりにくいポイント

3️⃣ 開始日時ページと終了日時ページの差分から計測時間を算出
 タイムスタンプの活用

4️⃣ 時間を計測する度に「時間計測DB」にページを作成
 オートメーション機能の活用

それでは順番に見ていきましょう!

🐣🐣🐣

1️⃣ 時間計測の仕組みを構築

まずは時間を計測するための仕組みを構築していきます。

みなさん、パッと思いつくのは、

1つのデータベース内で「開始日時」と「終了日時」を用意して、その差分を計測する

といった方法ではないでしょうか。

簡易的なものであればこれで全く問題ありません。
でもこの方法の最大の欠点は、1つの期間しか計測することができないということ。
つまり何度も計測すること(=計測の中断)ができないんですね。

よっぽど読むのが早い人であれば一気読みできるかもしれませんが、一般的な読書方法としては、何回かに分けて読み進めていくことだと思います。
なので、読書記録をつけるためには中断できる時間計測の仕組みが必要不可欠なんです。

少しづつ読み進めていくものを記録したい
少しづつ読み進めていくものを記録したい

そのために時間計測用のデータベースを用意します。

時間計測用のデータベースに日時情報を保存して、それを対象の本や読んだ日のデータとリレーションさせることで、何度でも時間計測できる仕組みを作ります。

時間計測データベースに日時情報を保存
時間計測データベースに日時情報を保存

具体的な関数の設定内容を処理の順番に説明していくので、手元でも試しながら読み進めてみてください。

1.「時間計測DB」の「ID」プロパティ
ページを判定するためのIDを発行

id()

2.「本棚DB」&「日別DB」の「ID集」プロパティ
時間計測用のIDを集約

/* 時間計測用IDを表示 */
prop("時間計測DB").map(current.id())

3.「時間計測DB」の「計測回数」プロパティ
各データが開始日時か、終了日時かを判定

/* 該当ID以前にあるカンマ(,)を数えて+1する(=該当IDが何番目の計測かを算出) */
toNumber(length(
	replaceAll(
		/* DB-T_BooksのID集から該当ID以降のテキストを削除 */
		replace(prop("本棚DB").map(current.prop("ID集")), prop("ID") + ".*", ""), 
	"[^,]", "")
)) + 1

この3つの関数を用いることで開始日時と終了日時を「時間計測DB」で判定することが可能となり、何度でも時間計測を行える仕組みが出来上がります。

ただ、3つ目の関数はプログラミングを学習した経験がある方じゃないと難しいですよね。
これ、すべてを理解する必要は全くありません。

理解しておくべきことは、この関数を使えばリレーションされているページの順番を把握できるということです。
関数の書き方を理解することもたしかに大事ですが、どういったことを実現できるのかを知っておくことが何よりも重要なんです。
それさえ理解できていれば別の機会にも流用することができますよ!

🐣🐣🐣

2️⃣ 開始日時ページと終了日時ページの差分から計測時間を算出

開始日時と終了日時を習得できたら、あとはその差分から計測時間を算出するだけです。
この算出にはタイムスタンプを利用します。

1.「時間計測DB」の「タイムスタンプ」プロパティ
開始日時の場合はマイナスのタイムスタンプ、終了日時の場合はプラスのタイムスタンプを表示

/* 開始日時が空白か判定*/
empty(prop("開始日時")) ? 
	/* 空白であればは終了日時のタイムスタンプを表示 */
	timestamp(prop("終了日時")) : 
	/* 空白でなければ開始日時のタイムスタンプをマイナスで表示 */
	-timestamp(prop("開始日時"))

2.「本棚DB」の「読書時間」プロパティ
タイムスタンプを合計して60000ミリ秒(=1分)で割ることで計測時間を算出

prop("計測") ? 
	/* 計測中であれば計測中と表示 */
	"計測中" : 
	/* 計測中でなければ計測時間を表示 */
	"⏰ 読書時間:" +
		round(
			/* タイムスタンプを合計してミリ秒数を計測 */
			prop("時間計測DB").map(current.prop("タイムスタンプ")).sum()
			/* 60000で割ることでミリ秒から分を算出 */
			/ 60000) + "分"

3.「日別DB」の「読書時間」プロパティ
基本は同じ算出方法ですが、「計測中」を判定する項目を変更
・「本棚DB」の場合は「計測」プロパティのチェック有無
・「日別DB」の場合は紐づいている「時間計測DB」の数

prop("時間計測DB").length() % 2 == 0 ? 
	/* 計測中でなければ計測時間を表示 */
	"⏰ 読書時間:" +
		round(
			/* タイムスタンプを合計してミリ秒数を計測 */
			prop("時間計測DB").map(current.prop("タイムスタンプ")).sum()
			/* 60000で割ることでミリ秒から分を算出 */
			/ 60000) + "分" :
	/* 計測中であれば計測中と表示 */
	"計測中"

これで、時間を計測して合計の読書時間を表示する仕組みの完成です🎉

🐣🐣🐣

4️⃣ 時間を計測する度に「時間計測DB」にページを作成

時間計測の仕組みはできたので、あとはそれを自動で動かす仕組みを作るだけです。
ここでオートメーション機能が登場します。

オートメーションで実行することは以下の流れとなります。

1.トリガー(オートメーションが起動するきっかけ)
 「本棚DB」の「計測」プロパティが編集されること

オートメーションのトリガー設定
オートメーションのトリガー設定

2.アクション①(トリガーが起動したら実行されること)
 「時間計測DB」にページを追加して、トリガーを起こしたページとリレーション

オートメーションのアクション設定①
オートメーションのアクション設定①

3.アクション②(トリガーが起動したら実行されること)
・「日別DB」の「今日?」にチェックが入っているページに、アクション①で追加された「時間計測DB」のページをリレーション
・トリガーを起こしたページのステータスを「読み途中」に変更

オートメーションのアクション設定②
オートメーションのアクション設定②

これでオートメーションの設定も完了です🎉
チェックをつければ計測が開始され、チェックを外せば計測が完了します。

🚨注意点

2023年10月1日現在
オートメーションのタイムラインが日本に対応していないため、9時間の時差が発生しております。
具体的には、24:00〜09:00の間は日付がズレてしまいます。
例えば、10月1日の午前6時に時間計測をすると9月30日の時間に含まれてしまう、ということです。

どうしてもそれを回避したい場合は(午前9時以前に読書することが多い方は)、以下の手順でオートメーションではなくボタンを利用するようにしてください!

1️⃣ オートメーションを一時停止する

オートメーションを一時停止
オートメーションを一時停止

2️⃣ トグルを開いてボタンを利用する

トグルを開いてボタンを利用
トグルを開いてボタンを利用

🐣🐣🐣

2−3. ページ構成

仕組みは完成したので最後にページ構成です。
全体イメージはこちら!

自動本棚ページの全体イメージ
自動本棚ページの全体イメージ

構成としては3つのブロックに分けてシンプルにまとめています。

「はじめにお読みください!」
 操作方法などを記載

「読書記録」
 ステータス毎の本の一覧や読書中の本を表示

「読書時間の振り返り」
 週別・月別・本別で読書時間を集計したビューを表示

あとはスマホ用ページも用意!
「読書記録」をスマホに最適化した順番で表示しています。

スマホ用の読書記録ページ
スマホ用の読書記録ページ

これでページ構成も整ったので読書記録ページは無事完成です🎉
お疲れ様でした!

🐣🐣🐣

3.学習記録などにカスタマイズする方法


この時間計測の仕組み、様々な用途にカスタマイズすることができます!
しかもものすごく簡単に

例えば学習記録。
「本棚DB」のプロパティや名称を学習用に変更するだけで、簡単に切り替え可能です!

他にも時間計測したい用途があれば簡単にカスタマイズ可能なので、良いアイデアが見つかった方はシェアしていただけるととっても嬉しいです!

🐣🐣🐣

さいごに_Notionテンプレートの配布


最後までご覧いただきありがとうございます!
役に立ったという方は「❤️(ハートマーク)」を押してしていただけると次の記事の励みになります!

この記事をきっかけに「読書が捗るようになった!時間計測機能が便利すぎてNotion活用レベルが一段上がった!」という方が1人でも増えると嬉しいです。

今後もNotionテンプレートの配布や有益情報の紹介を毎週更新していきますので、気に入ったらぜひフォローしてお待ちください!

X(旧:Twitter)でも毎日Notion活用術を発信しておりますので、こちらもフォローしていただけると非常に嬉しいです!ご質問やカスタマイズの相談などもXでお気軽にご連絡ください。

それでは、最後に今回ご紹介した読書管理ページ「自動本棚」のテンプレートを配布します。
無料で複製できるので以下のリンクからぜひお試しください!

この記事が参加している募集

わたしの本棚

おすすめガジェット

最後まで読んでいただきありがとうございます🤗 この記事を有益に感じていただけていると、とても嬉しいです! サポートもいただけると次の記事を書く励みになりますので、ぜひお願いします!