Excelで日付から自動的に曜日を計算してセルに入力する方法を紹介する。別のセルに表示する方法と、日付を入力したセルに曜日を追加する方法があるので、目的に合わせて使い分けるとよい。また、連続した日付を簡単に入力する方法についても紹介しよう。
対象:Excel 2016/2019/2021/2024/365
見積書や報告書などに日付を入力した際、曜日も入力したいこともあるだろう。そのような場合、いちいちカレンダーで曜日を確認して、セルに入力するのは面倒だ。入力した日付に合わせて、曜日が自動的に入力されると曜日の間違えも起きず便利である。
そこで、本Tech TIPSでは日付に合わせて曜日を自動入力させる方法を紹介する。
Excelで入力した日付から曜日を自動的に入力する際には、TEXT関数を使う。例えば、「A2」セルに日付を入力し、「B2」セルに曜日を表示したい場合、「B2」セルに以下のように入力するとよい。
=TEXT(A2,"aaaa")
これで自動的に「B2」セルに日付に対応する曜日が入力できる。
TEXT関数の「"aaaa"」の部分(表示形式コード)を下表のように変えれば、曜日の表示形式が変更できる。なお、オプションを「()」で囲うと「(月)」や「(Mon)」、「{}」で囲うと「{月}」、「{Mon}」といった形式でも表示可能だ。
表示形式コード | 曜日の表示形式 |
---|---|
aaa | 月、火、水、木、金、土、日 |
aaaa | 月曜日、火曜日、水曜日、木曜日、金曜日、土曜日、日曜日 |
ddd | Mon、Tue、Wed、Thu、Fri、Sat、Sun |
dddd | Monday、Tuesday、Wednesday、Thursday、Friday、Saturday、Sunday |
表示形式コードと曜日の表示形式の関係 |
TEXT関数では、曜日の表示形式が「表示形式コード」で指定可能なものに限定される。例えば、「日曜日」は「日曜日(定休日)」などとしたい場合、「(定休日)」を表示するために別の列を用意しなければならない。
このように特定の曜日のみ異なる表示にしたいような場合、CHOOSE関数とWEEKDAY関数を組み合わせるとよい。例えば、「A2」セルに日付を入力し、「B2」セルに曜日を表示したい場合、「B2」セルに以下のように入力するとよい。
=CHOOSE(WEEKDAY(A2),"日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日")
WEEKDAY関数は、日付に対する曜日が「1」から「7」までの数値で返されるというものだ。例えば、日曜日ならば「1」となる。
曜日 | 日曜 | 月曜 | 火曜 | 水曜 | 木曜 | 金曜 | 土曜 |
---|---|---|---|---|---|---|---|
数値 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
WEEKDAY関数の曜日と数値の関係 |
一方、CHOOSE関数の書式は以下のようになっており、<インデックス>に対応した値を返すもので、例えば<インデックス>の値が「1」の場合は「値1」が返される。上記の数式では、WEEKDAY関数を<インデックス>として、対応する「日曜日」などの値を返すことで、曜日が入力できる。
CHOOSE(<インデックス>, 値1,[値2],[値3]……)
CHOOSE関数の値の部分は、数値や文字列などが設定できるので、曜日を記号で示すといった柔軟な対応が可能だ。
TEXT関数やCHOOSE関数を使う場合、曜日を別のセルに入力する必要がある。日付と同じセルに曜日も入力したい場合は、「セルの書式設定」を使えばよい。
最初に日付を入力しよう。今日の日付ならば、セルを選択し、[Ctrl]+[;(セミコロン)]キーを押せば入力できる。
次に日付を入力したセルを選択し、[Ctrl]+[1]キーを押す(右クリックメニューから[セルの書式設定]を選択するか、[ホーム]タブの[数値]グループにある[数値の書式]の右脇の[▼]部分をクリックし、プルダウンリストの一番下にある[その他の表示形式]を選択してもよい)。
[セルの書式設定]ダイアログが開くので、[表示形式]タブの「分類」で「ユーザー定義」を選択し、「種類」で「yyyy/m/d aaa」や「yyyy/m/d(aaa)」(「aaa」の部分は上記の表示形式コードと同じ)と入力すればよい。
日次の売上表や予定表など、連続した日付のある表に曜日を入力したいこともあるだろう。このような場合、一つ一つセルを選んでTEXT関数を入力したり、書式設定したりするのは面倒だ(日付の入力自体も面倒だろう)。
このような場合、オートフィルや配列数式、スピルを利用するとよい。
先頭の日付を1つ入力し、そのセルを選択後、セルの右下にマウスポインターをホバーする(重ねる)と、マウスポインターが+字に変わるはずだ。この状態で、自動入力させたい方向に自動入力したいセルの位置までマウスをドラッグすればよい。これで、続きの日付が自動入力できる。セルの書式設定なども同時にコピーされるので、わざわざ日付を手動で一つ一つ入力してから、TEXT関数で曜日を入力したり、セル書式を設定したりする必要はない。
オートフィルによるコピーは、TEXT関数とCHOOSE関数、セルの書式設定で利用可能だ。
オートフィルで数式をコピーした後に曜日などの表示形式などを変更する場合、先頭セルのTEXT関数やCHOOSE関数を直し、これを再びオートフィルでコピーする必要がある。
TEXT関数やCHOOSE関数を使って、別の列に曜日を表示する場合、配列数式やスピル(Excel 2021/2024/365のみ)を使えば、修正は先頭のセルのみで済む(配列数式についてはTech TIPS「Excelの配列数式で合計を一発で計算する方法」、スピルについてはTech TIPS「答え一発! 配列数式 Excelの『スピル』とは?」を参照のこと)。
最初に「日付」列に日付を入力しておき、次に「曜日」列のセルに以下の数式を入力すればよい(スピルに対応していない場合は、[Ctrl]+[Shift]+[Enter]キーを押して配列数式に指定する)。これでスピルや配列数式として数式が確定し、「曜日」列のTEXT関数やCHOOSE関数で指定したセル範囲に対して曜日が入力される(配列数式としてセルに数式が入力される)。
=TEXT(A2:A32,"aaaa")
=CHOOSE(WEEKDAY(A2:A32),"日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日")
TEXT関数で表示形式コードを変更したい場合、「曜日」列のセルを選択し、数式内の表示形式コードを変更すればよい(配列数式の場合は、[Ctrl]+[Shift]+[Enter]キーで数式を再度確定する必要がある)。これで、「曜日」列の全て数式の表示形式コードが変更できる。CHOOSE関数の場合は、値の文字列を変更すれば、自動的にセル範囲に反映される。
スピルや配列関数は、数式のみに適用できる機能のため、セルの書式設定を使って同じセルに日付と曜日を表示したい場合には使えない点に注意してほしい。
土曜日や日曜日を分かりやすくするように、文字色やセルの背景色を変更したい場合もあるだろう。このような場合、「条件付き書式」を利用し、特定の条件に合致した場合に設定される書式を適用するとよい。
具体的には、日付の入力されたセルを含む色を付けたいセル範囲を選択し、[ホーム]タブの[スタイル]グループにある[条件付き書式]をクリックし、メニューから[新しいルール]を選択する。
[新しい書式ルール]ダイアログが開くので、「ルールの種類を選択してください」欄で[数式を使用して、書式設定するセルを決定]を選択する。「ルールの内容を編集してください」欄の「次の数式を満たす場合に値を書式設定」の入力ボックスに以下の式を入力する。
=WEEKDAY(<日付の入った最初のセル>)=<曜日の数値>
WEEKDAY関数の<曜日の数値>は、CHOOSE関数で曜日を指定する方法で述べた通りで、各曜日に「1」から「7」までの数値が割り当てられている。そこで、色付けしたい曜日の数値を指定すればよい。例えば、日曜日ならば「1」を指定する。
式の入力が済んだら、プレビュー欄の右側にある[書式]ボタンをクリックして、上記の数式に合致した場合に反映したい書式を設定する。これで、指定した曜日に対して、設定した書式設定が反映されるため、フォントや背景に色を付けることができる。
日付を延長したい場合は、最後のセルを選択し、上述のオートフィルの要領でドラッグすれば、この条件付き書式で設定した内容を含んで自動入力が行われる。配列数式やスピルを使っている場合は、TEXT関数やCHOOSE関数で指定したセル範囲を広げればよい。
【2025/05/12】CHOOSE関数を使う方法を追記しました。
【2023/10/23】配列数式やスピルを使って自動入力する方法を追記しました。
【2022/08/10】対象としてExcel 2021を加えました。
【2021/09/10】オートフィルを使う方法などを追記しました。
【2017/08/02】初版公開。
Copyright© Digital Advantage Corp. All Rights Reserved.
Windows Server Insider 鬮ォ�ェ陋滂ソス�ス�コ闕オ譁溷クキ�ケ譎「�ス�ウ驛「�ァ�ス�ュ驛「譎「�ス�ウ驛「�ァ�ス�ー