スポンサーリンク

【Excel/初心者】エクセル塾:日付時刻の関数①

日付時刻の関数 エクセル塾
スポンサーリンク
※当サイトは広告を含みます

エクセルとの付き合いは〇十年のパート事務員が僭越ながら開催しています、エクセル塾です。
前回は、検索と置換②便利ワザ、でした。
【Excel/初心者】エクセル塾:検索と置換②便利技いろいろ
今回からは、久しぶりの関数シリーズ!日付と時刻に関する関数をやっていきたいと思います!
なぜ、前回の関数シリーズでやらなかったかというと、長くなりそうだ・・・と思ったのと、まずはシリアル値とは何ぞや、というところをやらなければなあ、と思ったからです。
では、長くなりそうですが・・・どうぞ!

1.シリアル値とは:エクセルで日付時刻をあらわす

エクセルでの日付、時刻を取り扱ううえで理解しておいたほうがよいのが「シリアル値」というモノ。

シリアル値とは!

シリアル値とは、Excelにおいて、日時を計算処理するために格納されている数値のことである。
起点日を元に、経過日数と時間を通算した値を示す。シリアル値は、1日(24時間)を1.0とし、1日ごとに1ずつ増える。整数部分は日付を、小数部分は時刻を表す。時刻は、1日の1部分として、1を24で割った数値となる。セルに日付を入力するとセルの表示形式が自動的に日付の形式となるが、セルにはシリアル値が入力されている。シリアル値の数値を表示するには、セルの書式設定で表示形式を「標準」にすればよい。

引用元:https://www.sophia-it.com/content/%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB%E5%80%A4#:~:text=%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB%E5%80%A4%E3%81%A8%E3%81%AF%E3%80%81Excel,%E9%83%A8%E5%88%86%E3%81%AF%E6%99%82%E5%88%BB%E3%82%92%E8%A1%A8%E3%81%99%E3%80%82

つまり、エクセルでは日付時刻を「シリアル値」というデータ形式で扱い、日付は1900/1/1を「1」として、一日たつごとに1を足した数字となる。1900/1/2は「2」、2022/1/1は「44562」つまり、1900/1/1から44,562日たっているということ。
エクセルで「1900/1/0」となっちゃうことってありませんか?「0」が日付の書式だと「1900/1/0」になるからです。

時刻は一日24時間を「1」として、少数であらわされる。つまりお昼の12時は半分だから「0.5」、朝の6時は「0.25」、夜の6時は「0.75」、夜中の12時で1になる。つまり日付部分の整数値が1繰り上がる。
2022/1/1は44562だから2022/1/1のお昼の12時は「44562.5」、夕方6時は「44562.75」、夜の12時で1繰り上がって「44563.0」、となるわけです。

それでは関数へ行きましょう。

2.おさらい:関数の入れかた

まず、関数の入れ方のおさらい。

関数を入れるには
①リボン「数式」の「関数の挿入」ボタン
②日付時刻の数式とわかっている場合は、リボン「数式」の「日付/時刻」をクリックすると、日付時刻関連の関数が選択できて便利
③ショートカットキーはShift+F3で関数の挿入ボックスがでます

3.TODAY関数:今日の日付を取得する

まず、TODAY関数。

TODAY関数は今日の日付を取得できます。

=TODAY()

と入力します。()内には何も入れません。
すると、今日の日付が表示されます。

請求書に表示する日付なんかにいいですよね。
ほかの関数と組み合わせて使うことも多いです。

4.DAYS:日付と日付の間の日数を計算する

DAYS関数は開始日から終了日までの期間の日数を計算する関数です。
=DAYS(終了日,開始日) 
と入力すると、終了日と開始日の間の日数を計算してくれます。
引数の終了日、開始日は日付データ(シリアル値)である必要があります。
ちなみに、終了日と開始日を単純に引き算しても同じ結果が返ります。

例えば、以下のような表があったとします。発注日と納品日の間の日数を計算したいと思います。

セルC2を選択した状態で、リボン「数式」の「日付/時刻」からDAYS関数をクリックします。

引数を指定します。終了日に「納品日」のセルB2を、開始日に「発注日」のセルA2を入力し、「OK」ボタンをクリックします。

期間は12日と計算されました。
セルC2に入力した関数をコピーして、セルC3~C6に張り付けします。

ちなみに引き算しても同じ結果が返ります。

DAYS関数でも引き算でもマイナスの日付を計算することもできます。

お好みの方法でどうぞ!引き算のほうが簡単ですかね。。。

5.YEAR,MONTH,DAY関数:日付から年、月、日を取得する

YEAR、MONTH、DAY関数はそれぞれ日付から「年」「月」「日」を取り出すことができます。

例えば2022/4/25から
YEAR関数は年の「2022」
MONTH関数は月の「4」
DAY関数は日の「25」

を取り出します

ほかの関数と組み合わせして使うことが多いです。
YEAR関数を使って「年度」を出力したいなあ、という場合、1~3月は年から1引かないといけないのですが、やり方についてはこちらの記事がわかりやすかったです!
https://www.relief.jp/docs/003350.html

6.DATE関数:年月日から日付データを生成する

(1)DATE関数の基本

5の関数と逆バージョンですね。年月日から日付データを生成するのがDATE関数です。

以下の例では「年」「月」「日」がそれぞれ別のセルに入力されています。
=DATE(年のセル,付きのセル,日のセル)と指定すると、日付値が生成されます。

もちろん、セル参照ではなく年・月・日を直接入力してもOKです。

DATE関数もほかの関数と組み合わせて使いうことが多いです。

(2)DATE関数を利用して月初日付、月末日付を取得する

DATE関数を利用して、月末の日付、月初の日付を取得することができます。

セルA2に年、セルB2に月が入力されていたとします。

月初の日付日付の部分に「1」を指定します。
=DATE(年,月,1) と入力します。

月末の日付日付の部分に「0」を指定すると前月月末の日付になります。
1日の前日、ということになるので指定した年月の前月の月末日が返ります
=DATE(年,月,0) と入力します
=DATE(2022,12,0) と指定した場合、2022/11/30 が返ります。

では、当月末はどうやって出すの?というと、
=DATE(年,月+1,0) で出ます。
月にプラス1します。
=DATE(2022,12+1,0) と指定した場合、2022/12/31 が返ります。

月にプラス1するだけで年が変わっても大丈夫なの?と思いますが、大丈夫です。
年にプラス1せずとも、月にプラス1するだけで大丈夫です。年も自動的に繰り上がります。

TODAY関数と絡めることも多いです。
TODAY関数で今日の日付を取得して、その前月末を取得する、とか。

TODAYを使って前月月初・前月末、当月月初・当月末の取得方法をまとめると

①前月月初:=DATE(YEAR(TODAY()),MONTH(TODAY())-1,1)
②前月月末:=DATE(YEAR(TODAY()),MONTH(TODAY()),0)
③当月月初:=DATE(YEAR(TODAY()),MONTH(TODAY()),1)
④当月月末:=DATE(YEAR(TODAY()),MONTH(TODAY())+1,0)


③から説明します。ちょっとややこしいですが、前述のYEAR関数とMONTH関数も利用して、当月月初を出すときは
=DATE(YEAR(TODAY()),MONTH(TODAY()),1)
とします。
DATE関数の年のところは TODAY() で今日の日付を出して、そこから「年」を取り出したいのでYEAR関数でくるみます。YEAR(TODAY())となります。
月のところは TODAY() で今日の日付を出して、そこから「月」を取り出したいのでMONTH関数でくるみます。MONTH(TODAY())となります。
日のところは「1」と指定します。

②の前月末も年、月のところは当月と同様にして、日付の部分を「0」とします。

④当月末も同様に指定、月のところは MONTH(TODAY())+1 と、月にプラス1します。

①前月1日を出すときは月から1を引きます。MONTH(TODAY())-1 と、月をマイナス1します。

説明が前後してすみません。。。

7.EOMONTH:月末日を取得する

(1)月末日を取得する

6の(2)とかぶりますが、EOMONTHは基準日から指定した月の月末日を返します。
EOMONTHは End Of MONTH ですかね。英語で月末は the end of the month だそうです。

下図の例だと、開始日に「2022/4/5」を指定して
月に「1」を指定すると、翌月の月末日が返ります。つまり4月の翌月5月の月末日。
月に「-1」を指定すると、前月の月末日が返ります。つまり4月の前月の3月の月末日。
月に「0」を指定すると、当月の月末日が返ります。

月末を取得するにはDATE関数より、EOMONTH関数のほうが簡単ですね。

(2)EOMONTHを利用して月初日を取得する

ちなみに、月末の翌日が月初なので、EOMONTHを利用して月初日を取得するとしたら以下のようになります。

翌月月初は「当月末の次の日」なのでEOMONTHの月に「0」を指定して当月末を出して、1をプラス。
前月月初は「前々月末の次の日」なのでEOMONTHの月に「-2」を指定して前々月末を出して、1をプラス。
当月月初は「前月末の次の日」なのでEOMONTHの月に「0」を指定して当月末を出して、1をプラス。

長くなってしまいました。今回はここまでにして、次回は「日付から曜日を表示するには」をやる予定です。お読みいただきありがとうございました。

日付時刻の関数シリーズ
【Excel/初心者】エクセル塾:日付時刻の関数②曜日を表示する
【Excel/初心者】エクセル塾:日付時刻の関数③文字列・数値を日付データ(シリアル値)にするには
【Excel/初心者】エクセル塾:日付時刻の関数④時刻の関数


Excel 最強の教科書[完全版]ーーすぐに使えて、一生役立つ「成果を生み出す」超エクセル仕事術【電子書籍】[ 藤井 直弥 ]

コメント

タイトルとURLをコピーしました