このページの本文へ移動
  1. ホーム >
  2. FMVサポート >
  3. Q&A・パソコン活用情報をコーナーから探す >
  4. エクセル関数塾 >
  5. WEEKDAY関数で曜日によって表示を変更!

エクセル関数塾

第16回WEEKDAY関数で曜日によって表示を変更!

塾長、はじめまして。サークルの友人に紹介されてうかがってみました。

私が所属しているサークルの、毎月の活動表をエクセルで作ろうと思ったのですが、意外に手間がかかるんですね。連続した日付を入力する方法は友人に教わったんです。そこで、となりのセルに土日はサークルが「お休み」と自動的に表示させたいと思っているのですが……エクセルの関数で、日付や曜日を判断して、文字を自動的に入力する方法はありますでしょうか?

わしが、エクセル関数塾塾長!関 数之進(せきかずのしん)である!

エクセルでスケジュール管理に挑戦しているとは、なかなか感心、感心。
それに、高度な技を使おうとしておるな?せっかく日付を入力しているのなら、その日付を利用して、自動的に入力出来るぞ!その技を極意書を使って説明しよう!

関数塾 極意書

WEEKDAY関数で曜日を判断してみよう

エクセルでは、「WEEKDAY(ウィークデイ)関数」を使って、日付に対応する曜日を数字で表示させることができます。WEEKDAY関数では曜日に対しての「数字」が戻されるため、今回はステップアップで以前ご紹介した「IF(イフ)」関数を組み合わせて、曜日によって表示させる文字列を変える方法を解説します。

まずは、WEEKDAY関数の基本的な書式と機能について紹介します。

「IF関数」については、下記ページにて説明しています。

WEEKDAY関数の書式

WEEKDAY関数は次のように入力します。
=WEEKDAY(シリアル値,種類)

WEEKDAY関数は、シリアル値に対応した「曜日の数字」を、以下の種類のように表示します。種類は1〜3で指定しますが、指定する種類によって、「戻り値の最初の数字や対応する曜日」が違います。

種類の例:

1(省略) 1:日曜日 2:月曜日 3:火曜日 4:水曜日 5:木曜日 6:金曜日 7:土曜日
2の場合 1:月曜日 2:火曜日 3:水曜日 4:木曜日 5:金曜日 6:土曜日 7:日曜日
3の場合 0:月曜日 1:火曜日 2:水曜日 3:木曜日 4:金曜日 5:土曜日 6:日曜日

WEEKDAY関数を入力するときは、[関数の挿入]ボタンをクリックして[関数の分類]で[日付/時刻]を選択すると、かんたんに入力できます。
また、Excel2007と2010では関数ライブラリからも選択できます。

今回の例では、A列の日付が土日であれば、B列に「お休み」と入力させます。そこで、WEEKDAY関数でセルA5の日付をセルB5に曜日の数字として表示させます。その際に、「土曜日と日曜日」が連続した数字となる「種類2」を指定して、土曜日が「6」日曜日が「7」と表示させます。関数式を入力後、セルB35までコピーします。

シリアル値については、下記ページにて説明しています。

セルB5をアクティブにし、[数式]タブの[関数の挿入]をクリックしている画面イメージ

WEEKDAY関数を入力するセルB5をアクティブにし、[数式]タブの[関数の挿入]をクリックします。

次へ

[関数の分類]で「日付/時刻」を選択し、[関数名]で「WEEKDAY」を選択して、[OK]ボタンをクリックしている画面イメージ

[関数の分類]で「日付/時刻」を選択し、[関数名]で「WEEKDAY」を選択して、[OK]ボタンをクリックします。

次へ

[シリアル値]で[A5]を入力し、[種類]に「2」を入力して、[OK]ボタンをクリックしている画面イメージ

引数の[シリアル値]に「A5」を入力し、[種類]に「2」を入力して、[OK]ボタンをクリックします。

次へ

10月1日の曜日が「6」と表示され、WEEKDAY関数の式をセルB35までコピーしている画面イメージ

10月1日の曜日が「6」と表示されました。これは「土曜日」に相当します。WEEKDAY関数の式をセルB35までコピーします。

次へ

曜日の数字が求められている画面イメージ

曜日の数字が求められました。ステップアップで、曜日ごとに表示させる文字列を指定します。

ステップアップ:WEEKDAY関数の数字はどのように使えばいいの?

WEEKDAY関数は曜日を数字で表示しますが、数字を見ただけでは曜日がピンときません。実は、この数字は他の関数や数式と組み合わせて利用して、曜日ごとに違う表示をさせる場合などに便利です。
ここではエクセル関数塾第2回でご紹介した「IF」関数を組み合わせて、WEEKDAY関数で土曜日(6)と日曜日(7)なら「お休み」という文字列を表示させます。

式の例:
=IF(WEEKDAY(A5,2)>=6,"お休み","")

セルB5をアクティブにし、[数式]タブの[関数の挿入]をクリックしている画面イメージ

IF関数を入力する、セルB5をアクティブにし、[数式]タブの[関数の挿入]をクリックします。

次へ

[関数の分類]で「論理」を選択し、[関数名]で「IF」を選択して、[OK]ボタンをクリックしている画面イメージ

[関数の分類]で「論理」を選択し、[関数名]で「IF」を選択して、[OK]ボタンをクリックします。

次へ

[論理式]でセル「WEEKDAY(A5,2)>=6」を入力し、[真の場合]に「"お休み"」、[偽の場合]に「""」を入力して、[OK]ボタンをクリックしている画面イメージ

引数の[論理式]で「WEEKDAY(A5,2)>=6」を入力し、[真の場合]に「"お休み"」、[偽の場合]に「""」を入力して、[OK]ボタンをクリックします。

次へ

IF関数とWEEKDAY関数の組み合わせの式をセルB35までコピーしている画面イメージ

IF関数とWEEKDAY関数の組み合わせの式をセルB35までコピーします。

WEEKDAY関数は、日付に対応する曜日を数字で表示させることができる関数です。WEEKDAY関数で求められる曜日に対応した数字は、IF関数の条件と組み合わせると、特定の曜日に文字列を表示させることができるようになり、利用範囲が広がります。

問題

次の表から、A列が土曜日と日曜日ならB列に「休暇」と表示させましょう。

11月予定表の画面イメージ

※ 以下の内容はパソコンをご覧になっている方を対象としています。
サンプルをご利用になる場合は、パソコンにて本ページをご覧ください。

問題に必要なエクセルのファイルをダウンロードしてください。
ダウンロードするには、下記のファイル名を右クリックして、メニューから「対象をファイルに保存」を選択してください。

weekday-sample.xls(27KB)

本講座では、ファイルの保存先を《ドキュメント》としています。
ダウンロード方法がわからない場合は、下記ページをご参照ください。

答えを見る