Excel使いこなしの基礎と応用


WEEKDAY関数で曜日を表示する

WEEKDAYはシリアル値から「曜日」を表示させる関数です。 条件付き書式で土日のセルの背景色を塗り分ける場合などに応用できます。

…で、シリアル値って? にちょこっと答えると、これは時間の経過を数字で表現したもの。Excelが計算に使うのにとても便利。関数はこの数字から日付とか期間とか曜日とかを判定してその情報を教えてくれるわけ。

「2016/1/11」という日付のシリアル値「42380」の表示形式を長い日付にすれば「2016年1月11日」と表示され、表示形式を曜日にすれば「月曜日」と表示されます。この場合の曜日の表示は見せかけに過ぎず、実際の入力値は「2016/1/11」です。
例えば、条件付き書式でカレンダー全ての月曜日の書式を設定する際の参照には使えません。

シリアル値から曜日を判定して、その情報を取り出す」には、WEEKDAY関数の力が必要になるわけです。

目次


WEEKDAY関数の設定

WEEKDAY関数は「曜日」を1から7の数字で返します。
セルに「=WEEKDAY("2016/1/11")」と入力して確定させると「2」と表示されます。
WEEKDAY関数の表示
標準の状態では、日曜日が「1」~土曜日が「7」なので、「2」が表示されたということは、「月曜日」が返されたってことです。・・・が、それにしても、愛想のない関数ですね~。1とか3とかの数字を見て、これは日曜、こっちは火曜なんて瞬時に把握できるわけないっしょw

でも、この愛想の無さが数式の中で使うのには便利。

この数字をちゃんと曜日表示に変換する関数ワザもあるのでご心配なく。それについては詳しく後述します。

スポンサーリンク

既定の状態 (日曜日が1~土曜日が7) なら、セルの書式設定の表示形式を曜日(aaaaなど)にすれば、ちゃんと「月曜日」って表示されるよ!

ここで、WEEKDAY関数のダイアログボックスを開いてみましょう。

「数式」タブ「関数ライブラリ」の「日付/時刻▼」のリストから「WEEKDAY」をクリックします。
WEEKDAY関数をクリック
関数の引数」ダイアログボックスが開きます。
WEEKDAY関数の引数ダイアログボックス

引数は2つ。


(1)「シリアル値」
ダブルクォーテーションで括った日付("2016/1/11")を入力するか、DATE関数を入れるか、日付の入ったセル番地を入れます。


(2)「種類」

「種類」には起点となる曜日をどれにするかで分別された番号(数字)を指定します。通常は「1(または省略)」を指定し、起点は日曜日=戻り値(結果表示)1です。

WEEKDAY関数の「種類」について

上記(2)の引数「種類」は以下の表にあるように、かなり細かく分類されています。

1(または省略) 日曜が1、土曜が7
月曜が1,日曜が7
月曜が0,日曜が6
11 月曜が1,日曜が7
12 火曜が1,月曜が7
13 水曜が1,火曜が7
14 木曜が1,水曜が7
15 金曜が1,木曜が7
16 土曜が1,金曜が7
17 日曜が1,土曜が7

スポンサーリンク

以前のバージョンのExcelではピンクの背景色になった1,2,3の「種類」が使われており、11~17はその後に追加されました。

追加された11~17は比較的分かりやすく、起点が曜日ごとに分類されています。普通の使い方で金曜日を頭に持ってくることはなさそうですが、あらゆる事例を考慮して、この分類になっているのでしょう。

元からある3バージョンについては、大抵は日曜か月曜が起点でしょ?という考えに基づいているのと、SUMIF関数で土曜日曜の売上をまとめて集計するような時に土日の対応数字が連番になっていた方が数式を組み立て易いという利便性による分類と思われます。

曜日を文字列(月曜日・火曜日…月・火…)で表示させる関数

上の方で書きましたが、日曜=1、土曜=7になるWEEKDAY関数の種類1(省略または17でも同じ)を指定しているなら、わざわざ関数を使う必要はありません。

通常通り、「セルの書式設定」の「表示形式」を「ユーザー定義」にして「aaa」や「aaaa」と設定すればいいだけ。

但し、WEEKDAY関数の種類を1(省略または17でも同じ)以外にした場合には書式の表示形式は使えないので、関数の助けが必要です

CHOOSE関数で数字に対応した値を指定

「1」には「日曜」「2」には「月曜」というように、数字に対応した文字列を指定できる関数です。

曜日を表示させたいセルを選択して、「数式」タブ「関数ライブラリ」の「検索/行列▼」から「CHOOSE」をクリックします。
CHOOSE関数をクリック
CHOOSE関数の引数」ダイアログボックスが開いたら、

「インデックス」
WEEKDAY関数を「=」無しで入力。
下図のB2セルの日付を参照してC2セルに曜日を表示したいので、
WEEKDAY($B2,2)」としました。「種類」は月曜が起点の「2」です。

「値1」
月曜日」と入力しました。ダブルクォーテーション「””」は次の値に進むと自動で付くので打ち込む必要はありません。「値2」~「値7」に「火曜日」~「日曜日」を入力。隠れた「値」に進むにはスクロールバーの▼を押していきます。
CHOOSE関数の引数ダイアログボックス
式は「=CHOOSE(WEEKDAY($B2,2),"月曜日","火曜日","水曜日","木曜日","金曜日","土曜日","日曜日")」です。

下までフィルコピーすれば、
CHOOSE関数による曜日の表示
曜日が表示されます。

MID関数で文字列の中から指定した数の文字を取り出す

MID関数は文字列の「~番目」から「~文字」と指定した範囲を取り出して表示します。「あいうえおかきくけこさしすせそ」の「3番目」から「5文字」と指定すれば、「うえおかき」と返してくれるわけです。

曜日を表示させたいセルを選択して、「数式」タブ「関数ライブラリ」の「文字列操作▼」から「MID」をクリックします。
MID関数をクリック

MID関数の引数」ダイアログボックスが開いたら、

「文字列」
月火水木金土日」と入力。
この関数の応用では「月曜日…」の表記は使えません。「1文字ずつ抜き出す」のがポイントです。

「開始位置」
CHOOSE関数と同じく、「WEEKDAY($B2,2)」と入力。この式の表示結果は「1」ですから、開始位置は「月火水木金土日」の1番目=「月」ということになります。

「文字数」
何文字取り出すかの指定です。「1」と入力。
MID関数の引数ダイアログボックス
式は「=MID("月火水木金土日",WEEKDAY($B2,2),1)」です。

下までフィルコピーすれば、
MID関数での曜日表示
曜日が表示されます。
▶今日の日付を入力して自動更新させる方法させない方法<br>
▶EDATE関数で指定日の~ヶ月先の日付・~週間後の日付を表示

Officeで作れるもの