表計算:矢印月間予定表へ改修
2018/01/12(金)
 新年を迎えて予定表などの書式を見直して、改修を試みた。その結果の作表例が下図で、わざと年越し状態に
なるように、左端:年月日を前年12月にして自動計算させたもの。

 表計算による従来の予定表を今回は、月の日付左欄に矢印欄を設けて、該当月の経過日付に「矢印」を付けると
いう細工を施した。 以下、参考のため計算式を記しておく。

★短月処理:29日(同様に30〜31日の欄を処理):(1日〜28日の日付は必ず存在するので順打ちすればよい)
=IF(DAY([−3,−1]+28)<29,” ”,29)
(DAY([−3,−1]+28):29日の枠=29日目の暦日→短月では月替わりして1日となるので、空白記入)
★曜日処理:短月判定をする:29日(29日〜31日の枠を処理):1日〜28日は単純にMID関数処理でよい。
=IF(DAY([−3,−2]+28)=29,MID(”日月火水木金土”,WEEKDAY([−3,−2]+28),1),” ”)
★年越し処理改修:前月が12月ならば、翌年1月へ年越しする。(年月欄の左端が計算指定基準年月日欄)
=IF(MONTH([,−5])=12,DATE(YEAR([,−5])+1,MONTH(1),DAY(1)),DATE(YEAR([,−5]),
 MONTH([,−5])+1,1))

2018/02/02(金)
★矢印付け処理改修:複数年にまたがってもOK。(連月処理は別枠)
連月矢印付け改修:(当日だけ”▲”/過去はすべて”↑”/未来はすべて”空白”)
(必在区間:マーク3択)
〇1〜28日 未来・空白/通過↑/当日▲:
直接TODAYと表欄:[kjb]基準年月日の数値と比べる。
=IF(TOAY()=[kjb],”▲”,IF(TODAY()<[kjb],” ”,”↑”)) 1日枠
=IF(TOAY()=[kjb]+1,”▲”,IF(TODAY()<[kjb]+1,” ”,”↑”)) 2日枠

〇29日〜31日 短月検査を先行させてから矢印処理:
=IF(DAY([kjb]+28)<>29,” ”,IF(TOAY()=[kjb]+28,”▲”,IF(TODAY()<[kjb]+28,” ”,”↑”)))  29日枠。
=IF(DAY([kjb]+29)<>30,” ”,IF(TOAY()=[kjb]+29,”▲”,IF(TODAY()<[kjb]+29,” ”,”↑”)))  30日枠。

〇左端、1か月分の欄に計算式を入力し終れば、その計算式を複写して、右側の各月へ貼りつけていけば年越しを
 含め、何ヶ月分、何年分でも継続できる。(先頭月の計算式には指定基準年月日処理の欄があるので、複写後の月
 では、「前月欄から基準日付を参照」に設定し直してから、右側の各月へ貼りつける)
〇改修のために追加するIF判定文は1段階か2段階で間に合っている。やはり判断の一段、一段は大きな効果を発
 揮するのだなあ。(IF判定文が2段階、3段階になった)