セルに入力した日付に
曜日を表示するには、表示形式を使います。
日付と曜日を同じセルに表示する
ここでは「11月1日(水曜日)」と表示する方法を紹介します。
まず、セルに日付を入力します。このとき、文字列ではなく必ず
シリアル値として入力してください。日付をシリアル値として入力するのに特別なことは必要ありません。「2006/11/1」のように「年/月/日」形式で入力するだけです。
表示形式を設定するために[セルの書式設定]ダイアログボックスを開きます。[表示形式]タブの[分類]リストでは「日付」が選択されているはずです。右の[種類]リストで「3月14日」を選択します。
続いて[分類]リストで「ユーザー定義」を選択します。実行すると右の[種類]ボックスに「
m"月"d"日";@」のように入力されています。後ろの「;@」は今回関係ありませんから削除して「
m"月"d"日"(aaaa)」と入力します。[サンプル]が変化することに留意してください。
見ればわかると思いますが、「m"月"」の「
m」が月を表し、「d"日"」の「
d」が日の数値を表します。そして手入力した「(aaaa)」の「
aaaa」が曜日を表します。こうした特別な記号を
書式記号と呼びます。[OK]ボタンをクリックするとセルに曜日が表示されます。
曜日を表す書式記号には次の種類があります。
| 曜日 | 書式記号 | | 水曜日 | aaaa | | 水 | aaa | | Wednesday | dddd | | Wed | ddd |
|
曜日だけを別のセルに表示する
これもやり方は同じなのですが、ちょっとした工夫が必要です。まず2つのセルに日付(シリアル値)を入れてみましょう。
まずセルB2を選択して[セルの書式設定]ダイアログボックスを開き、先と同じ手順で「○月○日」形式に設定します。
次にセルC2を選択して[セルの書式設定]ダイアログボックスを開き、今度は「ユーザー定義」を選択します。[種類]ボックスには「aaaa」と入力してください。曜日だけを表示せよという意味です。
これで別のセルに曜日だけを表示できました。しかし、B列の日付とC列の曜日は連動していません。別のセルに、別の日付を入れているからです。これでは不便です。B列の日付を変更したときC列の曜日も自動的に変更されるようにするには、C列に
B列と同じ日付が入っていなければなりません。それには、B列のセルを
参照すればいいんです。
曜日を判定する
セルに曜日を表示するには上のように考えればいいのですが、では表示されている曜日を判定するにはどうしたらいいでしょう。たとえば、セルC2が「水曜日」だったら「OK」そうでなかったら「NG」と表示するようなケースを考えてみましょう。隣のセルD2に「=IF(C2="水曜日","OK","NG")」という数式を入力しました。
結果は失敗です。セルC2には間違いなく「水曜日」と
表示されているのに、IF関数の結果は「NG」です。これは、セルC2に
入力されているのは「水曜日」という文字列ではなく、2006/11/1を表すシリアル値だからです。ちなみに、2006/11/1のシリアル値は「39022」という数値です。IF関数は「39022」と「水曜日」を比較したのですから、結果が「NG」になるのも当然でしょう。
ここで問題になるのは、C列は
表示形式で「水曜日」という文字列を表示しているのに対し、D列は
数式で「水曜日」という文字列を比較しようとしているところです。表示形式と数式の結果は別物です。解決のためには、どちらかがどちらかに歩み寄らなければなりません。ここでは、
表示形式と同じ結果を得られる数式であるTEXT関数を使いましょう。TEXT関数の詳細については、
この関数はこう使え!「TEXT関数」をご覧ください。
TEXT関数は表示形式で設定したのと同じ結果を返します。試しに、セルD2の数式を次のように変更してみましょう。
セルD2に入力した「=TEXT(C2,"aaaa")」は、セルC2に表示形式に「aaaa」を設定したのと同じ結果が返ります。これをIF関数で判定してやればいいんです。
これで、数式から曜日を判定することができました。
土曜日は青、日曜日は赤など、曜日の色を自動的に変更するには条件付き書式を使います。詳しくは「
曜日の色を自動的に変える」をご覧ください。