勤務シフトや納品日など、業務上日付を扱うことは多いと思います。
便利な関数をうまく使うことで、簡単に今日の日付を表示したり、曜日をだけを表示したるすることもできます。
ここでは、DATE関数などの日付を処理するわりと簡単な関数について、わかりやすく図解付きで解説していきます。
ここで解説する関数一覧
日付を処理する関数はいろいろありますが、ここでは次の関数の使い方を解説しています。
関数名 | 概要 |
---|---|
TODAY | 現在の日付を返します |
DATE | 年・月・日を日付に変換します |
YEAR | 日付によって指定した「年」を返します |
MONTH | 日付によって指定した「月」を返します |
DAY | 日付によって指定した「日」を返します |
WEEKDAY | 指定した日付に対応する曜日を数値で返します |
TEXT | 指定した表示形式に従って、数値をテキストに変換します |
現在の日付を表示する(TODAY関数)
TODAY関数は引数も無いシンプルな関数で、現在の日付を返してくれます。
構文は以下のとおり
=TODAY()
セルB2とセルC2に同じく「=TODAY()」と入力していますが、表示されている値が異なりますね。
日付の値は実際にはシリアル値になっています。なので、書式設定で「日付」にするのか「数値」にするのかで表示が変わります。
「2023年11月7日」という日付ですが、内部的な値としては「45237」という値ということです。
分割された年月日を一つのセルで表示する
DATE関数を使うと、集められたデータで生年月日などが、年・月・日とバラバラのセルに入っている場合に、一つのセルにまとめて日付として扱うことができるようになります。
構文は以下のとおり
=DATE(年,月,日)
下図のようなデータがあるときに使えますね。
セルD2には次のように入力されています。
=DATE(A2,B2,C2)
セル位置を年月日に当てはめると、日付が表示されます。
特に書式を設定しなくても「2023/11/05」のように表示されますが、自動的に日付と判定されて表示設定が日付になっているだけです。
表示設定を変更して、好みの表示方法(曜日を入れるとか)に変えることもできます。
DATE関数で出される値もシリアル値なので、表示形式を「数値」にするとただの数字が表示されます。
指定する年月日の値は「数値」でなくてはなりません。「文字列」エラーになるので注意してください。
日付を年月日に分割する
YEAR関数、MONTH関数、DAY関数を使うと、「2023/11/5」のような日付の値から、年・月・日をのみを抽出することができます。
構文はそれぞれ以下のとおりです。
=YEAR(日付)
日付の値から「年」の数値のみ抜き出します。
=MONTH(日付)
日付の値から「月」の数値のみ抜き出します。
=DAY(日付)
日付の値から「日」の数値のみ抜き出します。
2行目のセルにはそれぞれ以下のように記述しています。
セルA2の値を参照しているだけです。
(セルB2)=YEAR(日付)
(セルC2)=MONTH(日付)
(セルD2)=DAY(日付)
A列の値が様々な表示になっていますが、全て日付として入力されています。
表示が違うのは、表示設定を変えているだけです。
日付として入力された値なので、内部的にはシリアル値になっています。
なので、参照するだけで関数として機能します。
例えば「5月5日」と全て全角で入力されていると、文字列なので年月日として変換できません。
曜日を値を返すWEEKDAY関数とTEXT関数を使った応用
日付のデータが入っているセルであれば、表示設定で曜日の表示は可能ですが、曜日だけ抜き出して別のセルに収めたいときなど、WEEKDAY関数を使えば曜日の値を出力することができます。
構文は以下のとおり
=WEEKDAY(日付,[種類])
種類は曜日の開始をどこからにするか設定する値で、3種類から選べます。
省略するとデフォルトの”1″として処理されます。
種類の値 | 日曜日 | 月曜日 | 火曜日 | 水曜日 | 木曜日 | 金曜日 | 土曜日 |
---|---|---|---|---|---|---|---|
1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
2 | 7 | 1 | 2 | 3 | 4 | 5 | 6 |
3 | 6 | 0 | 1 | 2 | 3 | 4 | 5 |
実際に関数を仕掛けてみましょう。
以下のように記述しました。2つ目の引数を1,2,3とそれぞれ変えた場合の結果です。
=WEEKDAY(A2,1)
2023年11月1日は水曜日なのですが、引数の[種類]を変えたことで、
種類が1の場合 → 返す値は4
種類が2の場合 → 返す値は3
種類が3の場合 → 返す値は2
と返す値が変わります。
WEEKDAY関数は、曜日そのものを返すのではなく、曜日の値として返します。
曜日として見えたほうがわかりやすいとなれば、TEXT関数を応用することで対応できます。
TEXT関数を使った曜日の表示
TEXT関数は、数値を指定した表示形式に従ってテキストに変換する関数です。
構文は以下のとおり
=TEXT(数値,表示形式)
表示形式は以下の形式が使えます。(大文字小文字も区別されます)
表示形式 | 概要 |
---|---|
d | 1桁または2桁の日付 |
dd | 2桁の日付(1桁の日付の場合は頭に0が付きます) |
ddd | 曜日の省略形(月,火,水,木,金,土,日) |
dddd | 曜日の正式名(月曜日,火曜日・・・) |
m | 1桁か2桁の月名、または時刻の分 |
mm | 2桁の月名、または時刻の分 |
mmm | 月の省略名 |
mmmm | 月の正式名 |
mmmmm | 月名の最初の文字 |
YY | 2桁の年(西暦の下2桁) |
yyyy | 4桁の年 |
HH | 24時間表記の時 |
hh | 12時間表記の時 |
ss | 時刻の秒 |
ss.000 | 時刻のミリ秒 |
AM/PM | 12時間表記でAMorPMも表記 |
表示形式は ”(ダブルクォーテーション)で挟んで記述します。
今回は曜日を表示したいので、表示形式は ”ddd” を用います。
入れ子をして関数を作ります。構文は以下のとおり。
=TEXT(WEEKDAY(A2,1),”ddd”)
TEXT関数で「数値」を指定する部分に、WEEKDAY関数を入れて帰ってきた値を使います。
先ほどの表を用いて、関数を書き換えました。
「水」と表示されて欲しいのですが、3行目と4行目は、違う表示になっています。
TEXT関数の曜日は、以下のように対応しているので、
WEEKDAY関数では[種類の値]を「1」にしないと曜日の表記がおかしくなるので注意してください。
日曜日 | 月曜日 | 火曜日 | 水曜日 | 木曜日 | 金曜日 | 土曜日 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
まとめ
日付の関数は何かと使う機会が多いと思います。
関数の構文自体は簡単なので、うまく応用して使うことで、データがかなり扱いやすくなると思います。
日付を扱っているときは、見た目の値と、内部的な値が異なるということを覚えておくのも重要です。
またWEEKDAY関数をTEXT関数に入れ子して扱うのも良く使うパターンです。
ちょっとした応用で活用範囲が広がると思いますので、覚えておきましょう!
ここでは、わりと簡単な日付系の関数を紹介しました。
別記事で少し難しい日付系関数も紹介したいと思います。
コメント