ミライのおうち

ITで生活を豊かに。 デジタルツールを使ったり使わなかったりして子育てや生活を楽しくするための方法をいろいろ模索しているミライクのスタッフmikiyokoのブログです。

友達の子どもの学年がすぐわかるようにした話

みなさん、親戚・友人・知人の子供の年齢とか学年ってポッと思い出せますか?

子どもの中での一学年の違いは大きく、趣味嗜好学ぶものが目まぐるしく変わっていくので、結構重要な情報要素だと思っています。洋服のサイズ感はこれくらいかなとか、そろそろ受験かな、とか。プレゼント選びや共通の話題作りにも役に立つことが多いです。

私は思い出せないことが多いので昔から年齢をメモっていましたが、まあもともと日記でも人の情報(親子情報も含む)とかをまとめていたので、この際Notionでも表示できるようにしようと思って色々いじってみました。 日記はこれをベースにしています。

mikiyoko.hatenablog.com

結論から言うと

できた

けど、

めんどかった

です。

アウトプットはこんな感じです。(ちなみに、中身のデータはダミーデータ*1です。)

見栄えはシンプルでいいですよね。 じゃあどうやって出したのか。

役に立つか分からんのですが、備忘録的に書きます。

「自分で作るのはめんどくさい、もうできてるやつが欲しい」という人は、この記事の最後にテンプレートのリンクを置いておきますので、そちらからみてみてください。

理想

出したいものは「学年」なので、大雑把にいうと、下記のように絞ればいいので考え方はシンプルではあります。

  1. 生年月日から、今年度はじめ時点の年齢を出す
  2. その年齢に当てはまる年度に合わせた学年を出す

Excelでやるならこんなイメージ。

式3:

=DATEDIF(B2,DATE(YEAR($B$1),4,1),"Y")

式4:

=VLOOKUP(B3,D:E,2,FALSE)

現実

「理想」で書いた通り、重要な考え方は年度ですね。ただ、Notionだと関数が足りず、シンプルにはいきませんでした。

で、試行錯誤の結果、下記のようなむっちゃ前処理しまくってようやっと出せた感じです。

  1. 生年月日を入れる(例:2004/10/15)
  2. 生年月日の月初を算出(例:2004/10/1)
  3. 生年月日の年初を出す(例:2004/1/2)
  4. 誕生日と年初で何ヶ月差があるか出す(例:9)
  5. 誕生日の年度を出す。先ほど出した月差分が3より小さければで誕生年の-1(例:2003)を、3以上なら誕生年(例:2004)を返す。早生まれかどうかを判別してます。
  6. 現在の年度を出す(STEP1をnow()に変えてSTEP2-5と同じ作業をする)
  7. 現在の年度と誕生年度の差分を出す = 4/2時点の年齢*2が出る。
  8. 年差分の数値をもとに学年を力技でIF式で出す。

Notionのプロパティで見るとこんな感じ。

いや何これ多くない?状態ですよね。

それぞれNotionの関数(Formula)で書くとこんな感じです。

STEP2

dateSubtract(prop("生年月日"), date(prop("生年月日")) - 2, "days")

STEP3

dateSubtract(prop("月初"), month(prop("月初")), "months")

STEP4

dateBetween(prop("生年月日"), prop("年初"), "months")

STEP5

if(prop("月差分") < 3, year(prop("生年月日")) - 1, year(prop("生年月日")))

STEP7

prop("今年度") - prop("誕生年度") - 1

STEP8

if(prop("年差分") < 3, "乳児・幼児", if(prop("年差分") == 3, "年少", if(prop("年差分") == 4, "年中", if(prop("年差分") == 5, "年長", if(prop("年差分") == 6, "小学1年", if(prop("年差分") == 7, "小学2年", if(prop("年差分") == 8, "小学3年", if(prop("年差分") == 9, "小学4年", if(prop("年差分") == 10, "小学5年", if(prop("年差分") == 11, "小学6年", if(prop("年差分") == 12, "中学1年", if(prop("年差分") == 13, "中学2年", if(prop("年差分") == 14, "中学3年", if(prop("年差分") == 15, "高校1年", if(prop("年差分") == 16, "高校2年", if(prop("年差分") == 17, "高校3年", "大人"))))))))))))))))

もしかしたらもっと近道があるのでは、、、と一抹の不安を感じつつ、一つずつ丁寧に処理した結果、「学年」を出せた感じです。 いったん理想のアウトプットにたどり着いたからまあよしとします。一度設定すれば別にいじることもないしね。 学年以外のプロパティは非表示にしたので目障りでもありません。 Notionの関数、もう少し種類増えたり、参照の柔軟性が出るといいなあと思いつつ、とりあえず力技でなんとかなるのはいいなと思いました。

使ってみたいけど自分でやるのはめんどい!という人は、こちらからテンプレートをご活用ください。

子どもデータベースのみ

どちらも同じ内容。サイトが違うだけ。 mikiyoko.booth.pm mikiyoko.gumroad.com

日記フルバージョン

どちらも同じ内容。サイトが違うだけ。 mikiyoko.booth.pm mikiyoko.gumroad.com

さて、今日もNotionをいじくるぞ。

*1:ダミーデータは、こちらの個人情報テストデータジェネレーターから自動生成しました。

*2:学年は4月2日生まれから4月1日生まれという区切りです。 4月1日生まれの児童生徒の学年について:文部科学省