見出し画像

『こどもエクセル』で思考力を伸ばす

「ツェラーの公式」というのがあるそうです。西暦で〇年〇月〇日と指定すると、その日が何曜日か分かるとかいう。

チンプンカンプン・・・

今回は夏休みの課題で、この『曜日が分かるシステム』を、なんと手作りExcelで作ってしまおうというチャレンジです。

ツェラーの公式とは関係ない在来工法ですが、こどもの「考える力」トレーニングにピッタリです。お試しください。

こんなの作れる?

「うるう年」とは

うるう年と聞くと「4年に一度くるやつね」とすぐ答えが返ってきますが、実は例外が2つあります。

1つは「100年、200年、300年・・・」という100年ごとの節目は、うるう年ではありません。そしてもう1つは「400年、800年、1200年・・・」とかの400年ごとの年は、うるう年になります。

早くもヤヤコシくなってきましたね。

考え方はこれでOK ?

それでは、さっそくこの『曜日当てシステム』を、学校で習い始めたExcelを使って作ってみることにします。

手の付け方としては、ざっとこんな感じでいかがでしょうか。

🔴年を見るとうるう年だったりそうでなかったり。うるう年の2月は29日。ただでさえ30日と31日の月があって、それが奇数偶数でスパッと分けられない!  ☜ でも、曜日はただひたすら月曜から日曜まで、順番を崩すことなく循環している。

🔴なので、年とか月を全部バラして日に置き換えて、これを西暦1年1月1日からずっと並べて、それに曜日のラベルをペタペタ貼っていくのが良さそう。

🔴日のデータ(順番)は、知りたい年月日の前年までを一つの塊にして、知りたい年月日の年の分をもう一つの塊に分けて求めると、スッキリするかも(後で合体)。

Step1. 知りたい年がうるう年なのかどうか

「うるう年かどうか」は大事なポイントなので、事前準備として『うるう年判定テーブル』を用意します。

<うるう年判定テーブル>

A3(A列)に年を入力すると、E3(E列)に判定結果が出ます(「1」が表示されるとうるう年)


〇 テーブルの作り方

Excelのセルに式を入れていきます。

<B3に入れる式>

=IF(MOD(A3,4)=0,1,0)

A3に入力した数字(年)を4で割って、余りがなければ「1」を表示します(⇒ その年の日数を1日増やす)。

<C3に入れる式>

=IF(MOD(A3,100)=0,-1,0)

A3に入力した数字(年)を100で割って、余りがなければ「-1」を表示します(⇒ うるう年を取り消して、増やした日数を元に戻す)。


<D3に入れる式>

=IF(MOD(A3,400)=0,1,0)

A3に入力した数字(年)を400で割って、余りがなければ「1」を表示します(⇒ もう1度うるう年にして1日増やす)。


<E3に入れる式>

=B3+C3+D3

4年、100年、400年チェックの最終判定を表示する(⇒ 「1」ならうるう年で、日数も1日多い)。


Step2. 西暦1年1月1日から前年末までの累計日数を出す

皆さんは、西暦1年1月1日から今日まで、何日間経っているか知っていますか?

フツーの人はそんなこと考えたことないと思いますが、ザックリ74万日です。日本で生まれた子どもの数が2021年は81万人でしたから、去年生まれた子どもを並べたよりも少ないくらいですね。

手で書き出すと人生詰んでしまいますが、Excelなら全然問題ないボリュームです。

<知りたい年月日の前年末までの日数を調べるテーブル>

例えば、1600年✖月△日を知りたいとしたら、1599年12月31日までの日数を出してから、それまでの期間のうるう年(日数)を調整します。

A3(A列)に知りたい年を入力するとK3(K列)にその前年末までの累計日数が出ます

〇 テーブルの作り方

<G3>1年365日で単純日数を出す

=(A3-1)*365

(A3−1)が前年の数字になります。それに365日をかけます。


<H3>4年周期のうるう年は何回あったか

=INT((A3-1)/4)

前年(A3-1)までに4年周期のうるう年が何回あったかを調べます。INTを使うと整数になります。


<I3>100年周期の年は何回あったか

=IF(A3-1>=100,INT((A3-1)/100),0)

100年以上経過してから前年までに、100年周期の年が何回あったかを調べます。


<J3>400年周期の年は何回あったか

=IF(A3-1>=400,INT((A3-1)/400),0)

400年以上経過してから前年までに、400年周期の年が何回あったかを調べます。


<K3>うるう年調整後の累積日数を出す

=G3+H3-I3+J3

上で調べたデータを計算します。



Step3. 知りたい年の経過日数を出す

前年末までの日数が分かったので、次は知りたい年に入ってからの経過日数を出します。

<知りたい年の日数が分かるテーブル>

M3(M列)に知りたい月、O3(O列)に知りたい日を入力すると、Q3(Q列)に西暦1年1月1日からその日までの日数が出ます


〇 テーブルの作り方


<N3>その年の1月1日から前月末までの日数を出す

=SWITCH(M3,1,0,2,31,3,59,4,90,5,120,6,151,7,181,8,212,9,243,10,273,11,304,12,334)

ここは難しい式を使うのではなく、単純に「1月だったら前月末まで0日」「2月だったら前月末まで31日」「3月だったら前月末まで59日」という具合に、実数が表示されるようにします(うるう年でも28日で計算)。

このデータを用意しておきます



<P3>うるう年の場合、日数を調整する(1日増やす)

=IF(AND(E3=1,M3>=3),1,0)

うるう年(E3=1)の場合、3月以降(M3>=3)の日数を1日増やします。


<Q3>西暦1年1月1日からの累計日数を出す

=K3+N3+O3+P3

前年末までの経過日数(K3)と、知りたい年の経過日数(うるう年調整済)を合計して、西暦1年1月1日からの累計日数を出します。


Step4. 曜日のローテーションを追加する

最後に、曜日に番号をつけたリストを用意します。

<完成型>

これで出来上がりです


<S3>日を曜日分けする

=MOD(Q3,7)

西暦1年1月1日以降の日を7で割って、曜日にリンクさせます。


<T3>曜日をセットする

=SWITCH(S3,1,"月曜日",2,"火曜日",3,"水曜日",4,"木曜日",5,"金曜日",6,"土曜日",0,"日曜日")

この記事を書いた「2022年8月11日、木曜日」を基準日にして曜日サイクルに合わせました。


Step5. 動作確認(テスト)してみる


さて、手作りExcelで『曜日が分かるシステム』ができあがったら、たくさんの年月日を入力して試してみましょう。iPadやGoogleのカレンダーと合っていましたか?


西暦は、1582年にユリウス暦からグレゴリオ暦に切替わったので、iPadのカレンダーとか見ると10月から11月にかけて曜日が飛んでいます。

『こどもExcel』ではグレゴリオ暦だけを使用しているので、西暦1年1月1日は月曜になっています


いかがでしたか? Excelの関数なども、こうして実際に使いながら覚えると楽しいですね。

ではまた!


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

算数がすき

この記事が気に入ったらサポートをしてみませんか?