カレンダー表:Excel2010
■ Excel豆知識107 |
|
107-2 MONTH関数
では、今度はカレンダー表に使われている関数について説明してみたいと思います。
MONTHは「月」の数字を求める関数です。
シリアル値(またはシリアル値が入力されているセル)を引数として入力し、そのシリ
アル値に対応する月を返します。戻り値は1〜12 (月)の範囲の整数となります。
=MONTH(B4)というようにシリアル値が入力されているセルを引数にしたりして使います。
この関数の仲間には
YEAR関数:シリアル値から「年」を抽出します。
DAY関数:シリアル値から「日」を抽出します。
WEEKDAY関数:シリアル値から「曜日」を抽出します。
などがあります。
ここで、年、月、日については想像通りの戻り値が返ってきたと思います。ただ、WEEK
DAY関数は「曜日」そのものではなく、数字でしたね。
今度はそれについて少し説明をしようと思います。
WEEKDAYは「曜日」を求める関数です。
シリアル値(またはシリアル値が入力されているセル)を引数として入力し、引数[種
類]の指定に従って、そのシリアル値に対応する「曜日を表す整数」を返します。戻り値
は1〜7(または0〜6)の範囲の整数となります。
=WEEKDAY(B18,2) というように使います。
これはWEEKDAY(シリアル値または日付文字列、種類)で後ろの一桁の数字は「種類」
を表します。
2番目の引数の種類は省略できます。省略すると種類を1とした場合と同じ結果になりま
す。上図は種類を省略したもので、H24.5.16(水)は「4」という戻り値になっています。
種類と戻り値の関係は下図のようになっています。この種類は、その後戻り値をどのよ
うに使うかによって選びます。「種類」を省略すると、1の種類を選択したものとして扱わ
れます。
下図のように H24.5.16(水)は
「種類」を1にすると、「4」という戻り値に
「種類」を2にすると、「3」という戻り値に
「種類」を3にすると、「2」という戻り値になります。
では、このMONTHとWEEKDAYがカレンダー表にどのように使われているのでしょうか。
それを説明するのに、Excel2007からの条件付き書式のダイアログボックスではちょっと
やりにくくなりました。Excel2003までの条件付き書式のダイアログボックスになかった
「適用先」が追加され、それが適用されている範囲のどのセルを選択してダイアログボッ
クスを出しても、ルールの数式がその適用範囲の左上隅のセルに対するものになってしま
いました。(カレンダー表のB4:F34の範囲のどこのセルでダイアログボックスを出しても、
下図と同じものが表示されます。数式はB4セルに対するものになっています。)
なので、この説明の時だけ、Excel2003のダイアログボックスを使うことにします。^^;
上図と下図は、表現は違いますが、同じ条件付き書式です。下図のExcel2003では選択して
いるF34セルに設定されている数式が表示されています。
条件1には=MONTH($B34)<>MONTH($B$4)という数式が入っています。
下図のH24.11月のカレンダーでは =MONTH($B$4)は 11/1の「月の数字」ですから11で
す。また、 =MONTH($B34) は 12/1の「月の数字」ですから12です。
=MONTH($B34)<>MONTH($B$4) の「<>」という部分は「左辺と右辺が等しくない」という
意味です。12と11は等しくありませんから、この条件が成立します。条件が成立したと
きに設定しているのが「フォントを白に」という書式です。34行目ではこの条件が成
立していますので、34行目の月日と曜日の欄が空白のように見えます。
34行目は上図では空白のように見えますが、下図のようにその辺を範囲選択してみる
と、実際には日付が表示されていて、そのフォントが白になっているのがわかります。
条件3には=WEEKDAY($B34)=7という数式が入っています。上図で =WEEKDAY($B34) は
土曜日ですから7です。(WEEKDAY関数の「種類」が省略された形で、種類の「1」の設定
になります。)
本来なら、=WEEKDAY($B34)=7 の条件が成立して、薄い黄色が34行に着くはずですが、
条件付き書式の優先順位は条件1、条件2、条件3となっているために、条件1のフォント
が白が優先されてしまい条件3の薄い黄色は無視されます。
11/24がある27行目は=WEEKDAY($B27)=7の条件が成立して、パターンが薄い黄色に
なっています。
Excel2007では、条件付き書式で優先順位を設定したい場合には、下図のように優先順位
が先のルールを上に配置して「条件を満たす場合は停止」にチェックを入れます。そうする
と、H24.11月のカレンダーの34行目のように、土曜日ではあるけれど、初日と違う月なの
でフォントを白というルールが優先された。ということになります。
また、このカレンダーとは別で、条件を満たしても、次の条件も考慮したいという場合に
はこのチェックをはずします。これはExcel2003までは出来ない設定でした。
条件2に使われている関数については、次回ということにしたいと思います。