ドロップダウンリストから年月(A1,B1)を選択するだけで完成するスケジュール表を作ります。
月末は自動で表示させ、土日や祝日には色がつくような設定もしていきます。
年と月にドロップダウンリストを設定
【A1】に年のドロップダウンリストを、【B1】に月のドロップダウンリストを設定します。
設定したいセル【A1】を選択して、
[データ]タブ-データツールグループの「データの入力規則」ボタンをクリックします。
「データの入力規則」ダイアログボックスが表示されます。
[設定」タブの[入力値の種類]から「リスト」を選択します。
右側の「ドロップダウンリストから選択する」にチェックが入っていることを確認し、[元の値]にリストにしたい項目を直接入力します。ここでは、2023年から5年分の入力にしました。
(「年」は後で表示形式として追加するので数字だけ入力します)
※ 項目の区切りは半角カンマ( , )を入力します。
かな入力時は「、」入力後≪F10≫を押すと半角カンマになるよ!
「OK」を押すとセルに下向き三角が表示されます。
クリックすると「元の値」で入力したものがドロップダウンリストで表示されます。
【A1】のフォントサイズをあらかじめ大きくしておけば、選択した文字も大きく表示されます。
今回は14ptに設定しました。
【B1】も同様に設定します。
ここは月を入れるセルなので[元の値]には1,2,3,4,・・・と12まで入力します。
ドロップダウンリストについて詳しくはこちらをご覧ください。
表示形式の設定で「年」「月」を表示
【A1】で”2023”を選択(入力)すると”2023年”と表示されるように設定します。
表示形式は見た目が変わるだけで元のデータはそのままだよ!
【A1】を選択して≪ Ctrl + 1 ≫(※テンキーの1は不可)を押します。
「セルの書式設定」ダイアログボックスが表示されます。
[表示形式]タブ-「分類」グループの「ユーザー定義」を選択します。
右側「種類」のボックスに #”年” と入力します。これで入力した数値の後ろに“年”の文字が入るようになります。
( # と ” は半角で入力すること)
※ #は数値を意味する記号です。
※ 文字列は “(ダブルクォーテーション)で囲みます。
【A1】に2023年と表示されました。
数式バーでわかるように、実際にセルに入っているデータは2023のままです。
同じ要領で【B1】には”月”を設定しましょう。 表示形式は #”月” です。
設定後、ドロップダウンリストから「2023」「1」を選択しておきましょう。
スケジュール表のタイトルと見出し部分も入力しておきます。
【B1】と【A3:D3】のセルは見やすく中央揃えにしました。
自動で表示される日付を設定(DATE関数)
【A4】に1月1日の日付を表示させます。ここではDATE関数を使います。
DATE関数は3つの数値を組み合わせ、西暦の日付(シリアル値)にする関数です。
【A4】のDATE関数では【A1】の西暦と【B1】の月をクリックして使い、日の部分は1日としたいので「 1 」と入力します。
=DATE(A1,B1,1)
2023/1/1 と表示されました。
表示形式は後で直すので一旦そのまま進めます。
【A5】は【A4】の翌日の日付にしたいので1日足します。
=【A4】+ 1
【A5】のセルをコピーします。
オートフィル(フィルハンドルを下方向へドラッグ)で31日が表示されるセルまでドラッグしましょう。
ここでは、【A34】までになります。
途中のセルから ####### と表示されます。
これは、セル幅にデータが表示しきれないというエラーコードです。
A列の幅を広げれば直りますが、後で表示形式を変えていくので一旦このまま進めます。
オートフィルについて詳しくはこちらの記事をご覧ください。
B列は曜日を表示します。
後で表示形式を使い曜日を表したいのでまずはシリアル値にしておきます。
【B4】は左の日付と同じ日付の曜日を表示、つまり同じシリアル値になります。
=A1
=(イコール)入力後に左のセルをクリックするだけだね!
【B4】のフィルハンドルでダブルクリックすればA列と同じ位置まで一気にオートフィルができます。
シリアル値について詳しくはこちらをご覧ください。
表示形式の設定で「日」「曜日」を表示
A列の日付の表示方法を変えていきます。
「2023/1/1」を「1日」という表示にしていきます。
【A4】から【A34】まで範囲選択します。
【A4】をクリックし≪ Ctrl + Shift + 下向き矢印 ≫で一気に選択!
日付全てが選択された状態で≪ Ctrl + 1 ≫をして、セルの書式設定ダイアログボックスを表示します。
今回の表示形式は、 d”日” とします。
さっきと同じ #”日” ではダメなの?
1行目の年と月は単なる数値だったため # を使いましたが、今回は日付(シリアル値)の「日」(day) の部分を抜き出して後ろに“日”を表示したいので「日」(day) を表す記号の“d”を使います。
※「 #”日” 」にすると、2023/1/1のシリアル値「44927」に”日”がつき「44927日」となってしまいます。
シリアル値について詳しくはこちらをご覧ください。
B列は曜日を表示します。
【B4】から【B34】まで範囲選択し表示形式は曜日を表す aaa とします。
ここで書式なども整えておきます(後でも大丈夫です)。
【A4】から【A34】は「右揃え・インデント1字」、【B4】から【B34】は「中央揃え」にしています。
フォントは「Meiryo UI」です。
罫線(格子)と見出しに色も設定しました。
月末の自動表示(29日・30日・31日)
2月のスケジュールにしてみます。
(【B1】のドロップダウンリストから「2」を選択)
2023年の2月は28日までなので、翌3月の1~3日が表示されてしまいます。
それは格好悪い…
29日、30日31日がない月は非表示に、ある月はそこまで自動で表示されるようにします。
ここでは、2つのやり方を紹介します。
A.関数を使用するやり方と B.表示形式を使用するやり方です。
(A)IF関数・DAY関数で月末を自動表示
関数を使って月末を自動表示させるやり方です。
IF関数とDAY関数を使っていきます。
IF関数
条件を満たしているかどうかを判定し、指定した内容を表示させる関数です。
例:C列に、B列(点数)が70以上なら「合格」そうでなければ「不合格」と表示します。
【C2】に入る関数は、=IF(B2>=70,”合格”,”不合格”)
【C2】【C3】【C5】の結果は「合格」となり、【C4】の結果は「不合格」となります。
DAY関数
シリアル値から「日」(day) の部分を1~31で返します。
例:【B1】に【A1】の日の部分を抜き出します。
=DAY(A1)
結果は「5」となります。
上記のIF関数とDAY関数を組み合わせて29日の【A32】に計算式を入力します。
=IF(DAY($A$31+1)<=3,“”,$A$31+1)
もし【A31】(28日)に1日足した日付が3以下(1日か2日か3日)だったら空白に、そうでなければ【A31】に1日足した日付を表示。
【A32】が29日ではなく、1日となったら非表示(空白)にするということになります。
$A$31 の絶対参照は必要なの?
この後、下のセルにコピーするのでずれないようにロックしました。相対参照($がない状態)でも問題ありませんが、その場合は下のセルでコピー後に【A31】と打ち直す必要があります。
絶対参照と相対参照について詳しくはこちらをご覧ください。
エラーになっちゃった!
大丈夫です。メッセージにあるようにこのセルだけ上下の計算式と違うため確認するように出てきました。
このまま気にせず下のセルにコピーしましょう。
コピー後、赤の部分だけ修正します。
それぞれ、28日に2日(3日)足した日が…となるように変更します。
【A33】 =IF(DAY($A$31+2)<=3,””,$A$31+2)
【A34】 =IF(DAY($A$31+3)<=3,””,$A$31+3)
エラーも消えすっきりしました。
【B1】で他の月に変更してみましょう。
月に合った正しい表示がされるようになりました。
(B)条件付き書式で月末を自動表示
上記の関数でのやり方ではなく条件付き書式で月末を自動表示させる方法です。
条件付き書式は、指定した条件を満たしたものだけに書式を設定します。
「1日」「2日」「3日」となったセルは非表示にするという設定をします。
2月にした時に翌月の日付が表示されてしまった6つのセル【A32:B34】を選択します。
[ホーム]タブ-スタイルグループ「条件付き書式」ボタンから「新しいルール」をクリックします。
「新しい書式ルール」ダイアログボックスが表示されます。
1.「数式を使用して、書式設定するセルを決定」を選択します。
2.下のボックスに式を入れます。
【A32】の日付が3以下(1日か2日か3日)だったら…という条件を入力します。
=day(A32)<=3 (小文字のままでも後で自動変換されるので問題ありません。)
条件付き書式で数式を入れる時の注意点
・範囲選択した際にアクティブになっているセルの計算式を入れる(ここでは【A32】)
・セルをクリックすると絶対参照になるので相対参照に戻す
次に「書式」ボタンを押し、2で入力した式を満たしている場合の書式を設定します。
「セルの書式設定」ダイアログボックスが表示されるので、[表示形式]タブ-「分類」グループの「ユーザー定義」を選択します。
右側「種類」のボックスに ;;; と半角セミコロン3つを連続して入力します。
※ 「;;;」はセルのデータを非表示にする表示形式です。
セルのデータが消えました。
数式バーを見ると、実際にはデータが入っていることが確認できます。
【B1】で他の月に変更してみましょう。
月に合った正しい表示がされるようになりました。
土日に色を設定(条件付書式・WEEKDAY関数)
「条件付き書式」を使って土日に色を付けて見やすくします。
条件付き書式にWEEKDAY関数を使います。
WEEKDAY関数
日付(シリアル値)から曜日を求める関数です。ただし、曜日を意味する数字で返します。
例:【A1】が何曜日か知りたい。種類を省略したものと、種類に「2」を入れたもので比較してみます。
=WEEKDAY(A1) (「種類」を省略した場合、日曜始まりの1~7で返します)
「1」=日曜日、「2」=月曜日、「3」=火曜日、「4」=水曜日、「5」=木曜日、「6」=金曜日、「7」=土曜日です。
「1」となったので、これが日曜日だということがわかります。
=WEEKDAY(A1,2) (「種類」を”2”にした場合、月曜始まりの1~7で返します)
「1」=月曜日、「2」=火曜日、「3」=水曜日、「4」=木曜日、「5」=金曜日、「6」=土曜日、「7」=日曜日です。
「7」となったので、これが日曜日だということがわかります。
「種類」は用途に合わせて使い分けます。
条件付き書式で土日のフォントを赤にする
土日の場合、日付(A列)と曜日(B列)のフォントが赤になるように条件付き書式で設定します。
【A4】から【B34】まで範囲選択します。
【A4:B4】を選択し≪ Ctrl + Shift + 下向き矢印 ≫で一気に選択!
[ホーム]タブ-スタイルグループ「条件付き書式」ボタンから「新しいルール」をクリックします。
「新しい書式ルール」ダイアログボックスが表示されます。
1.「数式を使用して、書式設定するセルを決定」を選択します。
2.ボックスに式を入れます。
=weekday(A4,2)>=6 (小文字のままでも後で自動変換されるので問題ありません。)
WEEKDAY関数の「種類」を”2”にしたので月曜始まりの1~7で返します。
6=土曜日、7=日曜日なので、WEEKDAY関数の結果が6以上(土日)だったら…ということになります。
条件付き書式で数式を入れる時の注意点
・範囲選択した際にアクティブになっているセルから見た計算式を入れる(ここでは【A4】)
・セルをクリックすると絶対参照になるので相対参照に戻す
次に「書式」ボタンを押し、2で入力した式を満たしている場合の書式を設定します。
「セルの書式設定」ダイアログボックスが表示されるので、[フォント]タブ-「色」から「赤」を選択し「OK」を押します。
(セルの色を変えたい場合は[塗りつぶし]タブから設定します)
土日のフォントが赤になりました。
【B1】で他の月に変更してみましょう。
月に合わせて土日だけ赤く表示されるようになりました。
条件付き書式で土日の行を塗りつぶす
1行すべてを塗りつぶしたい場合の補足です(2024.6.15)
塗りつぶしたい範囲【A4:D34】を選択し、条件付き書式を開きます。
上記と同様に進めますが、数式のA4を$A4に変更します。
=WEEKDAY($A4,2)>=6
書式ボタンから塗りつぶしタブをクリックし、任意の色を設定します。
祝日に色を設定(条件付き書式・COUNTIF関数)
条件付き書式を使って祝日に色を付けます。
COUNTIF関数を使います。
COUNTIF関数
検索条件に一致するセルの数を返します。
例:【C2:C5】の中から「合格」となっているセルがいくつあるか知りたい。
=COUNTIF(C2:C5,”合格”)
「合格」となっているのは3つなので「3」という結果になります。
祝日のデータを用意
祝日がいつかは色々なサイトで確認できますが、ここでは内閣府ホームページで確認してみます。
サイトをスクロールしていくと、CSV形式でダウンロードできるようになっています。
SCV形式って何?Excelで使えるの?
CSV形式は、カンマで区切られたテキストファイルです。様々なアプリで開くことができるため、データのやりとりにもよく使われます。Excelでも開くことができます。
ダウンロードしたデータはA列の幅が狭く、文字が表示しきれないので境界線でダブルクリックします。
A列の最長データに合わせて列幅が広がります。
1955年からの情報が入っているのでデータは縦に長いのですが、必要な部分だけコピーしてスケジュール表の別シートに貼り付けておきましょう。
Sheet1のスケジュール表も「スケジュール表」と名前変更しました。
条件付き書式で祝日のフォントを赤にする
祝日の場合も、日付(A列)と曜日(B列)のフォントが赤になるように条件付き書式で設定します。
土日の設定と同じ要領で行っていきます。
【A4】から【B34】まで範囲選択します。
[ホーム]タブ-スタイルグループ「条件付き書式」ボタンから「新しいルール」をクリックします。
「新しい書式ルール」ダイアログボックスが表示されます。
1.「数式を使用して、書式設定するセルを決定」を選択します。
2.ボックスに式を入れます。
=countif(祝日!$A$1:$A$17,A4)=1 (小文字のままでも後で自動変換されるので問題ありません。)
=countif( の入力の後、祝日シートに貼り付けた日付範囲をドラッグすると!や$マークがついてきます。
【A4】の$はF4を3回押して外しましょう。
「!」は違うシートという意味、「$」は絶対参照だよ!
この式の意味は、
祝日シートの【A1】から【A17】(コピーした祝日シートの日付の入った範囲で人によって違う)の中に【A4】と同じ日付があったらそのセルの数を数え、結果が「1」だったら…ということになります。
祝日と同じ日が見つかった場合、1個しかないため必ず1となるためそれが祝日であるということになります。
条件付き書式で数式を入れる時の注意点
・範囲選択した際にアクティブになっているセルから見た計算式を入れる(ここでは【A4】)
・セルをクリックすると絶対参照になるので式をコピーした際にずれては困る部分は相対参照に戻す
次に「書式」ボタンを押して、2で入力した式を満たしている場合の書式を設定します。
「セルの書式設定」ダイアログボックスが表示されるので、[フォント]タブ-「色」から「赤」を選択し「OK」を押します。
祝日のフォントも赤になりました。
【B1】で他の月に変更してみましょう。
月に合わせて土日と祝日が赤く表示されるようになりました。
条件付き書式で祝日の行を塗りつぶす
1行すべてを塗りつぶしたい場合の補足です(2024.6.15)
塗りつぶしたい範囲【A4:D34】を選択し、条件付き書式を開きます。
上記と同様に進めますが、数式のA4を$A4に変更します。
=COUNTIF(祝日!$A$1:$B$17,$A4)=1
書式ボタンから塗りつぶしタブをクリックし、任意の色を設定します。