• 公開日:
  • 更新日:

エクセルで日付から曜日だけを関数で取得する数式

この記事では、Excelで日付から曜日だけを関数を用いて取得する数式をご紹介しています。

日付の曜日を入力する場合、データ量が多いと1つ1つ調べて入力するのは大変です。TEXT関数やWEEKDAY関数は、日付から曜日だけを取得するのにとても便利です。

また、WEEKDAY関数とOR関数・IF関数を組み合わせて、特定の曜日(土・日・祝)だけを「定休日」として取得する方法も覚えておくと非常に役に立ちます。

日付から曜日だけを取得する関数

TEXT関数で曜日を取り出した状態

「日付から曜日だけを取得する」とは、日付セルを参照し、その日付セルに対応する曜日を別の列セルに自動的に反映させることを指します。

例えば、上の図では、2023年1月1日のセル(A2)を参照して、曜日の列セル(B2)に「日(日曜日)」のデータを取り出しています。

このように、日付のデータから曜日を取り出したい場合は、TEXT関数やWEEKDAY関数を使います。

TEXT関数およびWEEKDAY関数の機能や書式などの詳細については、以下の「TEXT関数」および「WEEKDAY関数」を参照してください。

TEXT関数

TEXT関数は、数値を指定した書式で文字列に変換する関数です。

書式は「=TEXT(値, 表示形式)」で、日付を短縮形の曜日(日本語)で表示するには「=TEXT(A2,”aaa”)」の数式を使います。

詳しくは、下記の「TEXT関数で取得する」セクションをご覧ください。

WEEKDAY関数

WEEKDAY関数は、日付に対応する曜日を数値で表示する関数です。WEEKDAY関数の書式は、「=WEEKDAY(シリアル値,種類)」です。

「シリアル値」については、曜日に変換したい日付のセルを参照します。

例えば「=WEEKDAY($A$2)=1」の数式を使うとすると、A2セルが「シリアル値」にあたります。

また、この数式では「種類」が省略されていますが、省略した場合は自動的に種類が「1」となり、戻り値は以下の表のとおりになります。

曜日戻り値
1
2
3
4
5
6
7

2023年1月1日は日曜日にあたるため、数式の結果は「=1」にします。

WEEKDAY関数を条件付き書式で曜日を取り出す方法については、以下「WEEKDAY関数で取得する」セクションを参照してください。

定休日の文字を表示したい場合

定休日を表示させる関数

上の図のように、曜日を含むスケジュール帳で、土日祝だけ別のセルに「定休日」を表示させたい場合があります。

その場合は、WEEKDAY関数で土日のセルを参照して「定休日」を表示させるだけでなく、OR関数とIF関数も加えて祝日のセルも参照できるようにします。

例えば、上図にある「=IF(OR(WEEKDAY(A2,2)>=6,B2="祝"),"定休日",")」の数式を分析してみましょう。

まず、WEEKDAY関数の「WEEKDAY(A2,2)>=6」数式について解説します。シリアル値については「A2」セルの日付(2023年1月1日)を参照しており、種類は「2」になっています。

種類が「2」の場合、曜日と戻り値は以下のとおりになります。

曜日戻り値
1
2
3
4
5
6
7

したがって、土日の行に「定休日」を入力したい場合は、戻り値は6以上でなければいけません。ゆえに、「WEEKDAY(A2,2)」の結果として「>=6」を付記します。

続いて、OR関数について解説します。OR関数は、いずれかの条件が成立する場合はTRUEを返し、それ以外はFALSEを返す関数です。書式は「=OR(論理式1, 論理式2, …,」です。

上の式の場合、「OR(WEEKDAY(A2,2)>=6,B2="祝")」の部分がOR関数にあたります。「土」「日」、もしくはB2セルに「祝」の曜日が参照されるときに、値(定休日)が返されるようになる仕組みです。

最後に、IF関数について解説します。IF関数は、特定の条件が満たされる場合に特定の値を返す関数です。書式は「=IF(論理式,値が真の場合,[値が偽の場合])」です。「=IF(OR(WEEKDAY(A2,2)>=6,B2="祝"),"定休日",")」の数式すべてにあたります。

「土」「日」、もしくはB2セルに「祝」の曜日が参照されるときに「定休日」が返され、そうでない時は空白(")で返されるようにします。

WEEKDAY関数とOR関数・IF関数を組み合わせて土日祝のみ「定休日」を入力する方法については、以下「WEEKDAY関数とIF関数とOR関数を組み合わせて定休日を取得する」セクションを参照してください。

エクセルで日付から曜日だけを関数で取得する数式

ここでは、Excelで上記の関数(TEXT関数、WEEKDAY関数)を実際に使用する方法を説明します。

TEXT関数とWEEKDAY関数で曜日を取得する手順は異なりますので、下記でそれぞれをご確認ください。

TEXT関数で取得する

Excelでは、TEXT関数を使って年月日(例: 2023年1月1日)が入力されているセルを参照し、その曜日(例: 日曜日)を自動的に抽出することができます。

この操作により、一つ一つ曜日を調べて手入力する必要がなくなるので、とても便利です。

TEXT関数で日付から「aaa」の表示形式で短縮形の日本語の曜日(月, 火, 水, 木, 金, 土, 日)を取得する方法については、以下の記事を参照してください。

エクセルで曜日を日本語表記にする方法

また、TEXT関数で日付から「ddd」の表示形式を使って短縮形の英語の曜日(Mon, Tue, Wed, Thu, Fri, Sat, Sun)を取得することもできますので、詳しくは以下の記事を参照してください。

エクセルで曜日を英語表記にする方法

WEEKDAY関数で取得する

WEEKDAY関数を使って日付(年月日)から曜日を取得する時は、条件付き書式を使います。詳しくは、以下を参照してください。

曜日を反映させたいセル(例: B2)を選択します。

数式バーに「=年月日のセル(例: A2)」を入力します。

Ctrl + Enterを押し、B2セルを選択したままの状態にします。ホームタブ、条件付き書式、新しいルールの順に選択します。

「新しい書式ルール」ダイアログボックスが表示されました。「数式を使用して、書式設定するセルを決定」を選択します。「=WEEKDAY($A$2)=1」を入力し、書式ボタンを押します。数式の詳細については、上記「WEEKDAY関数」セクションを参照してください。

「セルの書式設定」ダイアログボックスが表示されました。「表示形式」タブ、ユーザー定義の順に選択します。「種類」のテキストボックスに「aaa」を入力し、OKボタンを押します。

OKボタンを押します。

「2023年1月1日」に対応するB2セルに日曜日の「日」の文字が表示されました。B2セルの右下にカーソルを合わせ、真下にドラッグしてオートフィルします。

B列の3行目以降にも曜日の一覧が表示されました。

WEEKDAY関数とIF関数とOR関数を組み合わせて定休日を取得する

日付データから曜日を抽出した後、「土日祝」のみ「定休日」と表示したい場合は、「定休日」の列を新たに作成し、「土日祝」のみ「定休日」と自動入力する関数を使用すると便利です。

その関数とは、WEEKDAY関数とIF関数とOR関数を組み合わせた関数です。詳しくは、以下を参照してください。

また、祝日を定休日に指定しない場合でも、同じ数式で土日のみ「定休日」を割り当てることが可能です。

定休日を入力したいセルを選択する

「定休日」かそうでないかを判定したいセル(例: C2)を選択します。

数式バーを入力する

数式バーに「=IF(OR(WEEKDAY(A2,2)>=6,B2="祝"),"定休日",")」を入力します。

複数の関数を組み合わせた数式の構造に関して詳細を知りたい場合は、上記「OR関数とIF関数の組み合わせ」セクションを参照してください。

オートフィルする

Ctrl + Enterを押すと、C2セルに「定休日」が表示されました。

C2セルの右下にカーソルを合わせ、真下にドラッグしてオートフィルします。

定休日が表示される

B列の土・日・祝が入力されている箇所のみ、隣のC列に「定休日」が表示されました。