[ ホーム | 一覧 | 検索 | 最終更新 | ヘルプ ] [ 新規 ]

KAWANO's PukiWiki Plus! - Lecture/InfoPrac2004/10th/calendar の変更点

Top > Lecture > InfoPrac2004 > 10th > calendar
AND OR
  • 追加された行はこの色です。
  • 削除された行はこの色です。
  • Lecture/InfoPrac2004/10th/calendar へ行く。

*カレンダーの作成 [#b721cef2]
次に、ウィンドウ左下にある、
ワークシートの一覧から
「カレンダー」をクリックしてください。

#ref(ex03.png,nolink,カレンダーのシート)

カレンダーの作成と日付/時刻関数の説明をします。

まず、
年と月を、C2セルとE2セルにそれぞれ、「2004」「12」と入力してください。

**第1週の計算 [#n0a05145]
次に、第1週の日付の計算をします。
ここでは、「''その年月の1日が何曜日になるか''」がポイントになります。

ここで使う関数は、
これまで登場したIF関数と、
日付/時刻関数の''DATE''関数、''WEEKDAY''関数です。
:DATE(指定した年月日のシリアル値を返す)|
--書式 : DATE(年, 月, 日)
--引数 : 年 : 1900〜9999までの数値
--引数 : 月 : 1〜12までの数値
--引数 : 日 : 1〜31までの数値
:WEEKDAY(シリアル値を曜日に変換した結果を返す)|
--書式 : WEEKDAY(シリアル値, 種類)
--引数 : シリアル値 : 日付や時間のシリアル値
--引数 : 種類 : 戻り値の種類
---1または省略 : 日曜=1〜土曜=7 
---2の場合 : 月曜=1〜
---3の場合 : 月曜=0〜

-まず、その年月の1日は、DATE関数を使えば、シリアル値として求めることができます。次の計算式で表すことができます。
 = DATE(C2, E2, 1)
-次に、その年月の1日が何曜日かは、WEEKDAY関数を使えばわかります。上のDATE関数の結果を使えば、計算式は次のようになります(ここでは種類は1を選択します)。
 = WEEKDAY(DATE(C2, E2, 1))
-「2004年12月1日」のシリアル値と曜日の値は、上の2つの計算式を使えば、それぞれ「38322」と「4」(水曜日)となるのがわかります。

これらの式を使って、第1週の計算をしてみましょう。
B5〜H5セルの値も利用します。

正解から紹介すると、B6セルの計算式は次のようになります。
 =IF(B5>=WEEKDAY(DATE(C2,E2,1)), B5-WEEKDAY(DATE(C2,E2,1))+1, "")
     ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^
     条件式(A)                  真の場合(B)                  偽の場合(C)
つまり、次のような意味になります。
-その年月の1日の曜日がB5と同じかその後であれば...条件式(A)
--B5からその年月の1日の曜日を引き、1を足したものを返す...真の場合(B)
--空白「""」を返す...偽の場合(C)

わかりにくいので、表にしてみましょう。
「2003年12月」の場合、
「2003年12月1日」は水曜日なので、曜日の値は「4」となります。
|セル|5行目の値(曜日)|5行目の値-WEEKDAYの戻り値|条件式の結果|日付|h
|B6  |CENTER:1         |CENTER:-3                |CENTER:偽   |    |
|C6  |CENTER:2         |CENTER:-2                |CENTER:偽   |    |
|D6  |CENTER:3         |CENTER:-1                |CENTER:偽   |    |
|E6  |CENTER:4         |CENTER:0                 |CENTER:真   |CENTER:1|
|F6  |CENTER:5         |CENTER:1                 |CENTER:真   |CENTER:2|
|G6  |CENTER:6         |CENTER:2                 |CENTER:真   |CENTER:3|
|H6  |CENTER:7         |CENTER:3                 |CENTER:真   |CENTER:4|

つまり、まずセル(B6〜H6)の曜日の値と、その年月の1日の曜日の値を比較します。
もし、セルの曜日の値より1日の曜日の値が小さければ、
そのセルには指定された年月の日付はあらわれないはずです(まだ前の月の日付)。

もし、セルの曜日の値より1日の曜日の値が同じか大きければ、
そのセルには指定された年月の日付があわられます。
セルの日付は、曜日の値を計算したものから求めることができるというわけです。

B6セルの計算式の「C2」と「E2」セルを指定している部分を、
絶対参照の形式に変更してください。
変更できたら、B6セルの計算式をC6〜H6セルにコピーしましょう。
#ref(ex04.png,nolink,第1週)

**第2週〜第6週までの計算 [#te36628f]
第1週目は難しい数式を使いましたが、
第2週から第6週は簡単な計算式で求めることができます。

第2週の日曜日の日付は、第1週の土曜日の日付に1を足したものですから、
B7セルの次のような計算式になります。
 = H6 + 1

また、第2週の月曜日の日付は、日曜の日付に1を足したものですから、
C7セルの次のような計算式になります。
 = B7 + 1

あとは、月曜日の計算式を土曜日のセル(H7)までコピーし、そのあと第2週の計算式全体を第6週までコピーすれば、すべての枠に計算式を入力することができます。
コピーには、マウスを使えば簡単にできます。
#ref(ex05.png,nolink,第2〜第5週)

**月末の表示(条件付き書式) [#se8ed7aa]
今のままでは、月末に「32」などの余計な数字が表示されてしまっています。
そこで、「''条件付き書式''」を使って、数値の表示をコントロールします。
条件付き書式とは、普通の書式設定とは違い、セルや計算の値がある条件がときに設定せる書式のことです。

ここで使う関数は、さっき登場したDATE関数と、日付/時刻関数の''DAY''関数です。
-''DAY''(シリアル値に対応した日を1から31までの数字で返す)
--書式 : DAY(シリアル値)
--引数 : シリアル値 : 日付や時間のシリアル値

-指定された年月の1日は、DATE関数を使えば、シリアル値として求めることができます。次の計算式で表すことができます。
 = DATE($C$2, $E$2, 1)
-指定された年月の翌月の1日は、指定された月に1を足せばよいだけです。次の計算式で表すことができます。
 = DATE($C$2, $E$2+1, 1)
-指定された年月の翌月の1日の前日、つまり''指定された年月の最終日''は、''指定された月に1を足し、さらに日から1を引く、つまり0にすればよい''だけです。次の計算式で表すことができます。
 = DATE($C$2, $E$2+1, 0)
-したがって、指定された年月の最終日の日付は、次の計算式で求められます。
 = DAY(DATE($C$2, $E$2+1, 0))

この式を使って、次のように条件付き書式を設定しましょう。
「その月の最終日より大きい数値は、背景と同じ文字色で表示する」という条件にします。
+B10〜H11までのセルを範囲指定
+メニューバーから「書式」→「条件付き書式」を選択
+条件を設定
--中央の条件に「次の値より大きい」をマウスで選択
--右側の入力欄に、次の計算式を入力
 = DAY(DATE($C$2, $E$2+1, 0))
#ref(ex06.png,nolink,条件付き書式)
+「書式」ボタンをクリック
--「フォント」タブをクリック
--「色」で背景と同じ色を文字色に設定
--「OK」ボタンをクリック
+「OK」ボタンをクリック

設定できると、月の最終日より大きい数字が見えなくなります。ただし、表示されていないわけではないので、セルの塗りつぶしを設定するときには気をつけてください。

**見映えの設定 [#r97acb61]
カレンダーを見映えをよくするため、次のような設定をして下さい。
-文字色の設定(日曜日は赤、土曜日は青など)
-文字のフォントの設定、大きさの変更
-罫線の太さ、パターン
-セルの塗りつぶし


&br;
&navi2(Lecture/InfoPrac2004/10th,next);進んでください。
----
#navi2(Lecture/InfoPrac2004/10th,prev,toc,next)


メニュー

  • トップ
  • 授業
  • PukiWiki Log
  • Install Log
  • 道具箱
  • セキュリティ情報
  • RSSアンテナ

大学関係リンク

  • Webメール
  • 健康システム学科
  • 情報メディアセンター
  • 兵庫大学

今日の5件
  • FrontPage(91)
  • Lecture/CompPracC32005/7th(2)
  • Lecture/InfoPrac2005/2nd/5th(2)
  • Install Log/CentOS6/install(2)
  • Lecture/CompPracH2005/2nd_comment(2)
最新の5件
2016-04-08
  • Lecture/timetable_2016
  • Lecture
  • FrontPage
2015-09-30
  • Lecture/timetable_2015
2015-04-04
  • MenuBar

total: 2834
today: 2
yesterday: 0
now: 37


リロード   差分   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
http%3A%2F%2Fhs-www.hyogo-dai.ac.jp%2F~kawano%2F%3FLecture%25252FInfoPrac2004%25252F10th%25252Fcalendar
Founded by Minoru Kawano.
Powered by PukiWiki Plus! 1.4.7plus-u2-i18n. HTML convert time to 0.207 sec.
Valid XHTML 1.1