アフィリエイト広告を利用しています
G-QVESCNWRVH

2021年06月26日

Excel Tips:便利な関数 Date 関数 Calenderの例

Excel Tips Date関数.jpg

●今回の関数は?

Date 関数【をつかったカレンダー】を作ります

あっ! ちなみに Excel Tips の目次です ⇒ 目次
●どんな時に使う?

カレンダーを作ってみました。
Excel Calender 202106.jpg
これは、今月のカレンダーです。
色とかはマニュアルで付けましたが、カレンダーの数字は全て数式で導き出しています。
上に[年⇒]と[月⇒]の右に2021が入力されています。
ここに、好きな年と月を入力すれば、瞬時にその月のカレンダーが表示されます。

Excel Calender 202107.jpg
これは来月、7月のかれんだーです。

Excel Calender 196208.jpg
これは、私の生まれた1962年8月のカレンダーです。
23日生まれですから、を付けてみました
私は木曜日に生まれたんですねー(笑)
初めて知りました

Excel Calender 209912.jpg
これは、今世紀末はどうなんだろう?って

多分、このブログを読んでくださっている方で、このカレンダーがひつようとなる人は、おそらく3.8%ぐらいでしょう(冗談です(笑))

●どうやって作る?

カレンダーを作るのは簡単です。
まず
(1)求めたい月の1日は何曜日かを求める。
(2)最終日は何日かを求める。
(3)(1)で求めた曜日から最終日まで、1ずつ足していく
で終わりです。

本当でしょうか

つくってみると、意外に面倒くさい判断とかが入ってくるんですよね。

なので、こんな感じにしてみました。
結構、複雑な関数式になっちゃいました

一週目の日曜 =IF(WEEKDAY(DATE($D$2,$D$3,1))=CELL("col",C6)-2,1,"")
一週目の月曜 =IF(TRIM(C6)="",IF(WEEKDAY(DATE($D$2,$D$3,1))=CELL("col",D6)-2,1,""),C6+1)
二週目の日曜 =I6+1
二週目の月曜 =C7+1
五週目の日曜 =IF(MONTH(DATE($D$2,$D$3,I9+1))<>$D$3,"",I9+1)
五週目の月曜 =IF(TRIM(C10)<>"",IF(MONTH(DATE($D$2,$D$3,C10+1))<>$D$3,"",C10+1),"")

二週目から四週目は、前の日に1を足すだけで良いので、めちゃ簡単なんですがね。

ちょっと、これは最低やなって思って、もっと簡単な方法はないかなって考えてみました。
すると

(1)第一週の日曜日は何日になるか算出する。
(2)日付形式で第一週目の日曜日に入力する。
(3)第六週の土曜日まで、順次前の日に1を足す。
(4)条件付き書式で、各セルの月の値が指定された月と違っていたら文字色を白にする。

すると、初日だけちょっと複雑ですが、その後は+1のみ

一週目の日曜日 =DATE($D$2,$D$3,1)-WEEKDAY(DATE(D2,D3,1))+1
一週目の月曜日〜 =C6+1

で、条件付き書式で指定付き以外の文字を白色にする前はこんな感じです。
Excel Calender 202106 Type2.jpg
前月の最後の方と、次月の最初の方が混在していますよね。
ただ、各セルは年とか月の情報も持っていますので、ここから、(4)の処理を施します。
すると・・・
Excel Calender 202106 Type2-2.jpg
そりゃ同じになりますわな(笑)
でも、微妙に違うところが有るんです
どこか分かりますか?

Excel Calender 202106 Type2-3.jpg
バックをクリーム色にした日曜日・・・文字を白にしたので、うっすらと見えちゃってます。
このぐらいは気にしない気にしない!一休み一休み!
一休さん.jpg




この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント: 必須項目

この記事へのトラックバックURL
https://fanblogs.jp/tb/10820483

この記事へのトラックバック
ファン
検索
<< 2024年11月 >>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
最新記事
写真ギャラリー
最新コメント
タグクラウド
カテゴリーアーカイブ
プロフィール
Y.Taki@AS400さんの画像
Y.Taki@AS400
IBM AS/400で稼働するシステムの開発・追加を担当して30年以上になります。使えば使うほどこの AS/400 が好きになりました。 こんなSEがいろいろな視点から様々な業務などについて語ります。
プロフィール