十日町PのDTだったら何が悪い!

Excelで年を入力すると、自動的に曜日が入るようにする方法

Image by Andreas Lischka from Pixabay
使いまわしを有効活用したかったら何が悪い!

マリちゃん

毎年、日付の入ったExcelの表を使っているんだけど、曜日って年ごとに異なるじゃない?
それで、曜日を入力しなおして使っているんだけど、365日分って少し手間よね。
もっと簡単に入力できたりしないものかしら。

日付や月の書式は使いまわしができても、曜日は年ごとに変わるので、入力しなおさないといけないですよね。
曜日を変えて7通り作るのも手ですが、それも少し面倒くさい気がします。

そこで、今回は、年を入力したら自動的に曜日が入力されるような方法を解説します。

年を入力すると自動的に曜日が入力される方法

では順番に解説していきます。

やりたいこと

年月日を入力した表ってあると思いますが、この表の「年」の部分を入力したら、それに対応して、曜日が自動的に入るようにしたいと思います。

TEXT関数を使う

では、方針としてはTEXT関数を使って曜日を表示させるという方法を用います。

ただし、ひとつのセルに「年月日」まとまっていれば、そのセルを参照するだけでよかったのですが、今回は「年」「月」「日」がバラバラのセルに入力されています。

そこで、「年/月/日」のような値に整えて、その値をTEXT関数に参照させます。

マリちゃん

…。
何を言っているのかわからない…。

順番に見ていきましょう。

TEXT関数については以下の記事でも解説していますので、よかったら読んでみてくださいね。
>>>Excelで日付を参照して曜日を自動的に入力する方法

https://around40-dt-tokamachip.info/2021/01/08/post-16164/

とりあえず、曜日を表示させるセルにはTEXT関数が入るので、入力する式は以下のようにしておきます。

=TEXT(値,表示形式)

マリちゃん

関数そのままね

難しそうなことは少しずつ設定していけばいいんですよ。


では試しに、曜日が入る欄に手入力で「金曜日」と入れてみましたが、セルからはみ出してしまっています。

「金」ならきちんと収まっています。

というわけで、短縮形の表示にしたほうがよさそうですね。

マリちゃん

これに何か意味があるの?

TEXT関数で曜日を表示する際は、普通の表示と短縮形が選べます。

なので、普通の表示と短縮形を試してみて、どちらが見やすいかを試してみたのです。

表示方法は、関数の()の中の「表示形式」の部分に、文字を入力することで設定できます。

以下は、該当する日が月曜日だった場合です。

表示 表示形式の指定
月曜日(〇曜日と表示) aaaa
月(1文字で表示) aaa

で、今回は短縮形で表示したいので「aaa」を用います。

式を書き換えると、以下のようになります。

=TEXT(値,“aaa”

マリちゃん

ダブルクォーテーション(”)が付いてるけど・・・。

表示形式の指定の文字は、ダブルクォーテーションで囲んで指定します。

これで表示形式は決まったので、次に値を設定します。


値には「年/月/日」の形で入力する必要があります。

それぞれは以下のセルに入っています。

年 = B1
月 = C3
日 = C4

なので、これを利用して書き換えてみると

年/月/日

B1/C3/C4

このようになります。

マリちゃん

ちょっと待って。
C3の月のところなんだけれど、このセルを参照すると「1」っていう漢字が入っちゃって、うまくいかないんじゃないのかしら。

2021/1月/1

こういう表記だときっとダメなんでしょう?

そうですね。
マリちゃんの指摘通り、漢字が入ってしまうとうまくいきません。
でも、今回は大丈夫なように作ってあります。

マリちゃん

え?

この1月の「月」はセルの書式設定で追加してある漢字なのです。

1月のセルを選択してみると、数式バーには「1」だけ表示されています。
このセルに入っている値は1なんですね。

だから、このまま参照して使って大丈夫なのです。

セルの書式設定で文字を追加して表示する方法は以下の記事で解説していますので、よかったら読んでみてくださいね。
>>>Excelでセルの値に好きな文字を追加して表示する方法

https://around40-dt-tokamachip.info/2021/01/07/post-16151/


さきほどの「B1/C3/C4」をTEXT関数に入れてみると、以下のようになりました。

=TEXT(B1/C3/C4,”aaa”)


セルに入れてみると「木曜日」になりました。

マリちゃん

あれ?金曜日じゃなかったっけ?

そうですね。1月1日は金曜なので木曜日だと間違いです。

B1/C3/C4ですが、このまま入力すると「/」が割り算の記号と認識されてしまいます。
そしてそのせいでExcelの中では2021÷1÷1という計算になっちゃってるんですね。
なので、文字をつなげて表示する場合は、少し手を入れます。

=TEXT(B1&”/“&C3&”/“&C4,”aaa”)

セルの要素をくっつけるには「&」を使います。
また、「/」のような記号を文字として認識させるには「”」で囲む必要があります。

セルの要素の結合については以下の記事で解説していますので、よかったら参考にして見てくださいね。
>>>Excelでセルの値や文字を結合して表示する方法

https://around40-dt-tokamachip.info/2021/01/06/post-16130/

ともかく、式が完成したので、入力してみます。



今度は金曜日になったので大丈夫そうですね。

ではこの式を、ドラッグしてコピーしていきます。

セルをクリックして選択すると、右下スミに四角が現れるので、マウスカーソルを合わせて右へドラッグします。

セルに何か入っていますが、曜日ではなさそうです。

マリちゃん

何がおかしかったのかしら?


右方向へ参照コピーを行ったために、式の中の参照先も変わってしまったんですね。

なので、年と月の参照先は固定します。
日は右にずれていって問題ないのでそのままです。
列を固定したい時は、アルファベットの前に「$」を付けます。

=TEXT($B1&”/”&$C3&”/”&C4,”aaa”)

ではこれを入力してから、参照コピーしてみましょう。

今度はうまく曜日が入りましたね。


年を2021年から2022年に変更してみると、曜日がすべて書き換わりました。
2022年の1月1日は土曜日なので合ってそうです。

おわりに

これで、年を入力するだけで曜日が変化する表が作れるようになりました。

次回は、曜日が入力されたら、曜日に対応してセルの塗りの色が変わるようにしてみたいと思います。

今回は以上です。

お疲れ様でした!

追記
曜日ごとに色が変わる設定方法を解説しました。

https://around40-dt-tokamachip.info/2021/01/10/post-16209/