Googleスプレッドで関数を使う(日付系関数のうまい使い方)その1

日付関数の使い方その1タイトルロゴ

勤務シフトや納品日など、業務上日付を扱うことは多いと思います。

便利な関数をうまく使うことで、簡単に今日の日付を表示したり、曜日をだけを表示したるすることもできます。

ここでは、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″として処理されます。

種類の値日曜日月曜日火曜日水曜日木曜日金曜日土曜日
11234567
27123456
36012345
種類の値によって曜日ごとの返す値一覧

実際に関数を仕掛けてみましょう。

以下のように記述しました。2つ目の引数を1,2,3とそれぞれ変えた場合の結果です。

=WEEKDAY(A2,1)

2023年11月1日は水曜日なのですが、引数の[種類]を変えたことで、

種類が1の場合 → 返す値は4

種類が2の場合 → 返す値は3

種類が3の場合 → 返す値は2

と返す値が変わります。

WEEKDAY関数は、曜日そのものを返すのではなく、曜日の値として返します。

曜日として見えたほうがわかりやすいとなれば、TEXT関数を応用することで対応できます。

TEXT関数を使った曜日の表示

TEXT関数は、数値を指定した表示形式に従ってテキストに変換する関数です。

構文は以下のとおり

=TEXT(数値,表示形式)

表示形式は以下の形式が使えます。(大文字小文字も区別されます)

表示形式概要
d1桁または2桁の日付
dd2桁の日付(1桁の日付の場合は頭に0が付きます)
ddd曜日の省略形(月,火,水,木,金,土,日)
dddd曜日の正式名(月曜日,火曜日・・・)
m1桁か2桁の月名、または時刻の分
mm2桁の月名、または時刻の分
mmm月の省略名
mmmm月の正式名
mmmmm 月名の最初の文字
YY2桁の年(西暦の下2桁)
yyyy4桁の年
HH24時間表記の時
hh12時間表記の時
ss時刻の秒
ss.000時刻のミリ秒
AM/PM12時間表記でAMorPMも表記
TEXT関数の表示形式一覧

表示形式は ”(ダブルクォーテーション)で挟んで記述します。

今回は曜日を表示したいので、表示形式は ”ddd” を用います。

入れ子をして関数を作ります。構文は以下のとおり。

=TEXT(WEEKDAY(A2,1),”ddd”)

TEXT関数で「数値」を指定する部分に、WEEKDAY関数を入れて帰ってきた値を使います。

先ほどの表を用いて、関数を書き換えました。

「水」と表示されて欲しいのですが、3行目と4行目は、違う表示になっています。

TEXT関数の曜日は、以下のように対応しているので、

WEEKDAY関数では[種類の値]を「1」にしないと曜日の表記がおかしくなるので注意してください。

日曜日月曜日火曜日水曜日木曜日金曜日土曜日
1234567
表示形式の値による曜日対応表

まとめ

日付の関数は何かと使う機会が多いと思います。

関数の構文自体は簡単なので、うまく応用して使うことで、データがかなり扱いやすくなると思います。

日付を扱っているときは、見た目の値と、内部的な値が異なるということを覚えておくのも重要です。

またWEEKDAY関数をTEXT関数に入れ子して扱うのも良く使うパターンです。

ちょっとした応用で活用範囲が広がると思いますので、覚えておきましょう!

ここでは、わりと簡単な日付系の関数を紹介しました。

別記事で少し難しい日付系関数も紹介したいと思います。

コメント