【Excel-Tips】曜日の表示方法(書式設定と関数)

2022-06-04

Excel(エクセル)で日付と一緒に曜日も表示させたいことってありますよね。

カレンダーで曜日を確認して入力するのも手間がかかりますし、せっかくExcelを使うのなら日付に合わせた曜日を自動的に表示したいと思うのは当然です。

Excelで曜日を表示させるには「1.書式設定で表示させる方法」と「2.関数を使って表示させる方法」の2つの方法があります。

今回の記事はそれぞれ手順と使い方(使い分けの目安)、応用としてINDEX関数とWEEKDAY関数の組み合わせ方を紹介しています。

1.書式設定で表示させる方法

日付が入力されているセルの、書式設定の変更で関数を使わずに曜日を表示することができます。曜日が表示されればいいだけの場合は一番手間がかからない方法です。

日付が入力されているセルを選択して、セルの書式設定を開きます

書式をユーザー定義に変更します

種類の最後に(aaa)を追加します

今回は(aaa)で指定しているため(水)と表示されています。()が必要なければスペースやハイフンで区切って下さい。

曜日の表示方法

  • aaa – 月, 火, 水…
  • aaaa – 月曜日, 火曜日, 水曜日…
  • ddd – Mon, Tue, Wed…
  • dddd – Monday, Tuesday, Wednesday…

aとdの数で表示方法が変わるので、表示させたい形式を指定してください。

2.関数を使って表示させる方法

TEXT関数

TEXT関数は、指定した書式設定で表示させるための関数です。日付が入力されているセルとは別のセルに曜日を表示したい場合や、他の文字列等と組み合わせて曜日を表示したい場合に使います。

=TEXT(日付,書式)

表示の書式は上記の「曜日の表示方法」と同じですが、関数で書式を指定する際は""の間に入力してください。

使用例

入力されている数式

セルB2:=TEXT(A2,"(aaaa)")
セルC2:="発行日:"&A2&B2
セルD2:="発行日:"&TEXT(A2,"yyyy/mm/dd(aaaa)")

C列の結合(&:アンバサンド)では日付がシリアル値で表示されています。また、今回の例ではありませんが、日付と曜日の間に文字列を挿入したい場合などはテキスト関数で書式を指定することで思ったように表示させることができます。

WEEKDAY関数

WEEKDAY関数は、指定した日付に対応する曜日を「数値」で返す関数です。

=WEEKDAY(日付,種類)

関数で指定する「種類」によって、開始曜日と数値の最小値(0 or 1)を指定できます。

そのため、Excelで「曜日の表示」よりは関数やマクロ等で「特定の曜日(土日等)」を指定したい場合に使います。

使用例

上記の例では、種類2(月曜日:1~日曜日:7)としています。土日を休日で入力する例で、TEXT関数でも指定はできますが、WEEKDAY関数を使う方が簡単に入力できます。

入力されている数式

セルD2:=IF(TEXT(A2,"aaa")="土","休日",IF(TEXT(A2,"aaa")="日","休日","出勤"))
セルE2:=IF(WEEKDAY(A2,2)>=6,"休日","出勤")

条件付き書式の設定でもWEEKDAY関数を使うと1つの条件で指定できるため、特定の曜日に対するアクションを指定する場合はTEXT関数よりも使いやすいです。

INDEX関数との組み合わせ

先ほどは連続した土日に指定していますが、INDEX関数と組み合わせると月水金だけの場合もTEXT関数より楽に指定できます。

入力されている数式

セルD2:=INDEX({"出勤","休日","出勤","休日","出勤","休日","休日"},WEEKDAY(A2,2))

配列として1週間分の出勤日を直接入力して、WEEKDAY関数で得られた数値から値を取り出しています。

配列、INDEX関数については下記をご覧ください。

使い方(使い分けの目安)

  • 同じセルで日付と曜日を表示させるだけの場合 → 書式設定で表示
  • 他の文字列や日付と組み合わせて曜日を表示させたい場合 → TEXT関数
  • 日付の入力されているセルと別のセルに曜日を表示させたい場合 → TEXT関数
  • 関数やマクロ(VBA)等で特定の曜日を抽出する場合 → WEEKDAY関数
  • 複雑な条件の曜日指定をしたい場合 → WEEKDAY関数

ざっくりですが、上記のような使い分けになると思います。曜日だけの表示や指定は簡単にできる範囲ですので、練習も兼ねて挑戦してみてください。

祝祭日も考慮したい場合は単独の関数や書式では対応が難しいですが、簡単なデータベースを作ればExcelでも対応できますよ。

IT-TipsExcel

Posted by ううら