こんにちは、ちちくろです♪
Excelの関数にTEXT関数というものがあります・・。
TEXT関数とは・・
引用
TEXT 関数を使用すると、表示形式コードを使用して数値に書式設定を適用することで、
数値の表示方法を変更することができます。
これは、数値をより読みやすい形式で表示する場合や、
数値を文字列または記号と組み合わせる場合に便利です。
なんか・・よくわからないのですが・・要するに・・セルの書式の表示形式に相当するもの・・。
この機能を使うと・・日付から曜日を一発で表示させることが出来ます♪
月間予定表などを作成する時・・曜日を書き込むのは面倒ですよね・・。
そこで・・TEXT関数を使って月間予定表のテンプレートを作ってみることに ・・。
目次
月間予定表
図のような月間予定表を作ってみることにします・・。

セルB1に西暦を記入し・・セルB2に月を記入すると・・C列に曜日が記入される・・。
予定の項目には・・午前・午後・夜間に2項目くらい書き込めるようにすればOKかと・・深夜は・・グッスリ眠りましょう♪
そこで・・西暦と月を記入すればどうすれば曜日を表示させることができるのか・・ご説明しようかと・・。
TEXT関数で曜日を取得
図のような月間予定表のテンプレートを作成した場合・・月間予定表に曜日を書き込むのは少し面倒・・。
そこで・・西暦年と月を記入すれば・・それぞれの日に曜日が入るようにしたい・・。
それを実現するためにTEXT関数を使ってみることに・・。
日付の数値から曜日を取得するには YYYY/MM/DDという形の文字を作る必要が有ります。
どのように文字を作るのか次項で説明を・・。
CONCAT関数で数値を編集
CONCAT関数で日付の文字を作成することに・・。
CONCAT関数は・・指定した文字列に他の文字列を付け足すことが出来る関数・・文字列は参照先セルを指定しても良いし・・“(ダブルクォーテンション)で区切って直接指定することもできます・・。
TEXT関数で日付の文字から曜日を取得するには・・YYYY/MM/DDの形式にする必要が有るので・・。
セルA4の数式は・・”=CONCAT($B$1,”/”,$B$2,”/”,B4)”と書き込み・・その後はA5からA34迄数式をコピー・・これでOK

この数式の意味は・・セルB1の西暦(YYYY)/セルB2の月(MM)/セルC4からC34の日(DD)これを書き込めというもの・・。
西暦と月のセルB1とB2はセル番地が固定されているので・・絶対参照で指定しましょう♪
数式を書き込むと・・A4からA34のセルにYYYY/MM/DDという形式で日付の文字が表示されるので・・この文字から曜日を取得するだけ・・。
TEXT関数の数式
YYYY/MM/DDの文字から曜日を取得するには・・TEXT関数を使います♪
C列に曜日を記入する為に・・書き込む数式はC4セルを例に挙げると・・”=TEXT(A4,”aaa”)・・と言う内容・・。
この数式の意味は・・セルA4の数値を”aaa”という形式で表示しろというもの・・”aaa”というのは・・曜日という形式・・。
後は・・セルC5からC34にコピー・・これでC列に曜日を入れることが出来ます♪
ちなみに・・”aaaa”と”a”を4つで指定すると・・“日曜日”と曜日がついて表示されます・・月曜日とか・・火曜日と表示したい場合は”a”を4つで指定しましょう♪
英語表記・・例えば月曜日を“Monday”としたい場合は・・”aaa”の代わりに”ddd”とします・・。
“ddd”と”d”3つで指定すると・・“Mon”と表示され・・”dddd”と”d”4つで指定すると・・”Monday”と表示されます・・。
お好みの表示方法をお使いください♪

大の月と小の月
これで完成・・と思ったのですが・・そうはいかない・・。
1か月って・・31日の月があれば・・30日しかない月も・・特に2月は28日しかありません・・。
表にすると・・
- 1月・・31日
- 2月・・28日(閏年だと29日)
- 3月・・31日
- 4月・・30日
- 5月・・31日
- 6月・・30日
- 7月・・31日
- 8月・・31日
- 9月・・30日
- 10月・・31日
- 11月・・30日
- 12月・・31日
となります・・。
1か月の日数が31日の月を大の月といい・・31日未満の月を小の月といいます・・。
小の月を覚えるのに・・“にしむく侍”と学校で教わりましたよね・・今は違うのかも・・。

これだと小の月は、31日は・・2月だと29日以降はTEXT関数で曜日が取得できません・・この場合・・”2025/2/29“というようにA列の文字がそのまま表示されてしまいます・・こういったところExcelはよくできていますよね♪
この問題を解決するため・・TEXT関数で曜日が取得できない日にちは空白にすることに・・。
IF関数で空白に
TEXT関数で曜日を取得できない日にちを空白にするには・・どのようにしようか?
いろいろ考えた結果・・IF関数を使うことに決定!!
なぜ?というと・・TEXT関数で曜日が取得出来ないとA列の文字がそのまま表示される・・ならばTEXT関数の結果がA列のセル同じならば・・空白を返し・・異なるのならばTEXT関数の結果を表示すればよいのでは?
C列の数式を変更してみることに・・変更した数式”IF(TEXT(A4,”aaa”)=A4,””,TEXT(A4,”aaa”))というもの・・。
数式の頭のIF(TEXT(A4,”aaa”)=A4というのは・・TEXT関数の結果がA4セルの内容と同じかどうか判定・・。
同じならば “” で空白に・・同じでなければ・・TEXT(A4,”aaa”)でTEXT関数の結果を表示する・・。
試してみると・・2025年の1月だと・・1日が水で・・31日が金を表示される・・。
次に2月だと・・1日は土が表示され・・28日は金が表示され・・それ以降は空白に・・。
今回はC列の全部の数式を変更したけど・・実際は29日以降を変更すればOK
条件付き書式で体裁を整える
ここまでで・・曜日は入るようになったのですが・・もう一工夫・・。
先ほどの小の月の31日等を黒く網掛けして存在しないことをアピールしたい・・。
土や日は休日なので・・平日と識別するため色分けしたい・・具体的には・・土曜は青色に・・日曜は赤色に・・。
これらの事を実行するためにExcelの条件付き書式を設定することに・・。
条件付き書式は【ホーム】タブの【条件付き書式】の【新しいルール】を選択し設定できます。
存在しない日付は網掛け
存在しない日付を網掛けするための条件付き書式の設定は・・。

29日の行を選択し・・【条件付き書式】の【新しいルール】を作成し・・【ルールの種類を選択してください(S)】で【数式を使用して、書式設定するセルを決定】を選択し・・数式に”=$C$32=””を設定・・。
次は書式を選択し・・黒の網掛けを指定すればOK
条件の数式=$C$32=””は・・C32のセルが空白なら・・というもの・・。
空白ということはTEXT関数で曜日が取得できない・・つまり存在しない日付ということに・・。
この設定を30日と31日にも同様に行いましょう♪
それでは、実際に実行してみると・・。
2025年1月だと・・すべてのセルが網掛けの無い状態に・・。
2025年2月だと・・29日~31日が網掛け状態に・・♪
休日は色を変える
次は、休日は色を変えることに・・これは・・土曜日は青に・・日曜日は赤にしたいということ・・。
曜日の列であるC4からC34を選択し・・【条件付き書式】の【新しいルール】を作成・・。
【ルールの種類を選択してください(S)】で・・【指定の値を含むセルだけ書式設定】を選択し【セルの値】を【特定の文字列】に変更・・。

特定の文字に【土】に設定し・・書式で文字のフォントの色を青に変更・・。
同様に日曜日は・・土曜日と同じ操作をし・・特定の文字を【日】に設定し書式で文字のフォントの色を赤に変更・・これで終了♪
まとめ
今回は・・TEXT関数とCONCAT関数を使い月間予定表のテンプレートを作成してみました♪
予定表以外でも・・月間報告書やカレンダーなどにも・・。
TEXT関数を使えば・・曜日を打ち込む必要が無いのでテンプレート作成が簡単に・・。
更に、条件付き書式でテンプレートの体裁を整えると・・。
良かったらお試しください♪