シニアのためのパソコン教室とスポーツ、映画など

NPO法人湘南ふじさわシニアネットでシニアのためのパソコン(ワード、エクセル、インターネットなど)活動を中心にきままに

わいわいデジタルサロン(万年カレンダーの別の作り方)

2014-02-02 11:17:41 | エクセル
昨日、万年カレンダーについてふれました。
その方法は、WEEKDAY関数を使ってその月の1日がどの曜日に該当するか調べ、該当する曜日に「1」とする方法でした。
その際に別の方法もあると書いていますが、その方法について説明します。
それと説明を省略している部分がありましたので、初級者の方にも理解していただけるように書き加えました。

まず、WEEKDAY関数は3種類あります。
WEEKDAY(シリアル値、1または省略)→日曜:1、月曜:2、・・・・土曜:7
WEEKDAY(シリアル値、2)→月曜:1、火曜:2、・・・・日曜:7
WEEKDAY(シリアル値、3)→月曜:01、火曜:1、・・・・日曜:6

カレンダーが日曜から始まる場合はWEEKDAY(シリアル値、1または省略)
月曜から始まる場合はWEEKDAY(シリアル値、2)を使えばいいですね。

今日述べる方法はWEEKDAY(シリアル値)を使って第1週の日曜日を求めて、その値からそれ以外の数字を挿入していく方法です。
WEEKDAY(1日のシリアル値)を求めると1から7までの数字が求まるので、「1」の場合に日曜日に「1」日、「2」の場合月曜日が「1」日というようになりますが、、「1」の場合に日曜なので、「1」日。「2」の場合は月曜日が1日になるので、日曜は月初めの1日から1を引いたもの、同様に「7」の場合は土曜日が1日なので日曜日は1日から「6」を引いたものになります。
したがって、カレンダーの先頭の一番左の日曜日は1にのシリアル値からWEEKDAY関数で求めた値を引いて「1」を加えたものになります。

まず、
下のような表を用意します。



次に
A1セルに「年」、B1セルに「月」を入力できるようにしておく。
H1セルにその月の1日のシリアル値(=DATE(A1,B1,1))
I1セルに月末のシリアル値(=DATE(A1,B1+1,1-1)
J3セルにWEEKDAY関数(=WEEKDAY(H1))
を入力します。

いよいよA3セルに数式を入力していきますが、一つにまとめてみました。
「=$H$1-WEEKDAY($H$1)+COLUMN(A1)+(ROW(A1)-1)*7」と入力してコピーすれば下のような表ができます。
1つの式からすべてのセルにコピーできるということは、A3~G8を選択して、数式バーに「=$H$1-WEEKDAY($H$1)+COLUMN(A1)+(ROW(A1)-1)*7」と入力して、Ctrlキーを押しながらEnterするとこの範囲のすべてのセルにコピーされます。
数式をコピーできる場合には、複数セルを選択して、同様にCtrlキーを押しながらEnterすると一気にコピー・貼り付けができます。
このCtrlキーを押しながらEnterすると一気に入力できるキーは同じ数値を複数セルに入力する際に便利な機能です。エクセル2000まではこの機能は必須でした。2000ではスマートタグの機能がなかったので、ドラッグしてコピーすると罫線までコピーされて表の体裁がくずれるケースが多々ありました。

それからROW関数とCOLUMN関数は行や列を移動する際に数字が変わる場合にはとても便利な関数です。



前の月と後の月の日にちが混在しているので、不要なデータを条件付き書式でみえないようにします。
①A3~G3選択して、[ホーム]→[条件付き書式]→[新しいルール]、開いた画面の[数式を使用して書式設定するセルを決定]クリック、[次の数式を満たす場合に書式設定]ボックスに「=A3<$H$1」と入力、、[書式]ボタンクリック、[セルの書式設定]ダイアログボックスが開くので、[フォント]タブでフォントの色を「白」に設定します。前月の数字が見えなくなるはずです。
②A7~G8を選択して、①と同様の手順で条件付き書式で、「=A7>$I$1」と入力、同様にフォントの色を「白」にします。
③この状態(A7~G8を選択した状態)で、「=$G$7>=$I$1」と入力し、[罫線]タブで上辺の線だけ残してあとは消します。


その結果後の月の不要なデータと7行目のセルに入力がない場合に罫線を見えなくすることができます。



この方法のメリットはカレンダー内に入力する式を1つにすることができることにあります。

ほかにもいろいろとあるかもしれませんね。
ぜひ教えてください。







最新の画像もっと見る

コメントを投稿