こんにちは、デスクワークラボの吉井良平です。
前回の記事「月別、年別に、かんたんに集計する方法」で、日付から年や月を取り出す方法を紹介しました。
日付の操作ができるようになると、エクセルの応用範囲が広がりますので、今回は日付の操作方法を一挙に紹介します。
これだけ知っておけば、日付の操作方法に関してはバッチリです。皆さんの業務に使えるものがあれば、積極的に取り入れて下さいね。
日付も計算できる!
まず、「日付も計算できる」ということを紹介します。
これは、6月1日という日付に、30を足した結果です。
「今日から10日後」などを計算する場合には、普通に足し算をすれば大丈夫です。
これに条件付き書式の機能を組み合わせると、「締切日の2日前になったら、赤字にして注意する」というようなことができるようになります。
もちろん、引き算もできます。
試しに、生まれてから何日たっているかを計算してみてください。「何歳」というのとは違った感覚があります。
吉田拓郎の「今日まで そして明日から」という歌が流れてきそうです^^
日付の正体は数字
では、どうして日付を足し算、引き算できるのでしょう?
実は、エクセルの日付は、実は「1900年1月1日から何日たっているか」という数字なのです。(正確には、1899年12月31日からですが)
試しに、1~5の数字を入力して、右クリックして「セルの書式設定」を選んでみて下さい。
表示形式で「日付」を選ぶと、1900/1/1~1/5の日付に変わりますよね?
エクセルのセルに、「6/2」「6-2」などで日付を入力すると、エクセルが自動的に「その年の6月2日は1900年の1月1日から何日たっているか」を計算してくれています。
この1900年1月1日から何日たっているか、という値のことを「シリアル値」といいます。何かで役立つかもしれないので、頭の片隅に入れておいてください。
選べる表示形式
日付の正体はシリアル値なので、エクセル上にどのように表示させるかは自由に選ぶことができます。
エクセル上に表示させる方法は、右クリック → セルの書式設定 で調整します。
「年、月、日」と漢字を入れた表記か、ただ「 / (スラッシュ)」で区切っただけの表示にするのか、年を表示させるのか、などの表示方法を、セルの書式設定で変更することができます。
平成・令和などの元号の表記は、上の図の「カレンダーの種類」を和暦にします。
もっと細かい標記をしたい場合は、「ユーザー定義」から細かい設定をすることができます。
gggeで元号表記、geで元号の略称(R:令和、H:平成、S:昭和、T:大正、M:明治)です。
話は戻って、この書式設定で「yyyy」になっているところを「yy」だけにすると、2016(年)が16(年)と下2ケタのみになります。
「m」になっているところを「mm」にすると、1~9(月)が、01~09(月)と2ケタの表示になります。
同様に、「d」を「dd」にすると、1~9(日)が、01~09(日)となります。
日付の桁数をそろえたい場合は、書式設定で調整をするのです。
ちなみに、「aaa」と付け加えると、曜日を表示することができます。
これも知っておくと便利です。(デフォルトで表示して欲しい気もしますが)
日付に関する関数
日付も関数でいろいろ操作できます。
必ず知っておいた方が良い関数と、知っておいたら得する(使う人は使う)関数に分けて紹介しますね。
必ず知っておいた方が良い関数
TODAY関数
機能: 今日の日付を表示する
式: =TODAY()
*カッコの中には何も入らない。
応用範囲: いろいろ、何でも。とにかく、今日の日付を表示させたい場合に使います。
発行日や提出日など、今日の日付を表示する必要がある場合すべてに使えます。
注意点としては、明日になったら明日の日付に変わるため、日付を保存しておきたい場合には不向きです。
なお、=NOW() でもほとんど同じことができます。(NOW関数の場合は、時間も現在の時間になります)
時間まで必要な場合はNOW関数を使いますが、時間は時々刻々と変わっていってデータの更新が煩わしいことがあるので、時間まで必要ない場合はTODAY関数を使った方が無難です。
YEAR関数、MONTH関数、DAY関数
機能: 日付から、年、月、日を取り出す
式: =YEAR(日付)、=MONTH(日付)、DAY(日付)
応用範囲: ピボットテーブルの準備として、日付データから年、月、日を取り出す。誕生日から誕生月を取り出す、など。
応用例は、前回の記事「Excelで月別、年別に集計する方法」をご覧下さい。
システムからデータをダウンロードして使う時には、大活躍する関数です。
なお、時間の場合は HOUR関数、MINUTE関数、SECOND関数で、ほぼ同じ使い方です。時間、分、秒を取り出します。
知っておくと得する関数
ここからは、知っておくと得する関数です。こんなこともできる、ということで紹介しますね。
部門、業種によっては、これらの関数が必須のところもあります。
EDATE関数
機能: 月数後(前)の日付を求める
式: =EDATE(日付,月数)
*月数を正の数にすると、月数後。負の数にすると、月数前
最初に、日付も計算できるという話を書きましたが、1カ月後、2カ月後・・・を求めようとした場合に、単純に30を足していったら日付が少しずつ変わってきます。
1ヶ月が30日の日もあれば、31日の日もありますよね。2月は28日で、29日の年もあります。
なので、「1カ月後のこの日」などを指定する場合には、このEDATE関数を使います。
EOMONTH関数
機能: 月数後(前)の月末日を求める
式: =EOMONTH(日付,月数)
*月数を正の数にすると、月数後。負の数にすると、月数前
上の図は、よくある「月末締め、翌月末払い」という取引を表にしたものです。
月末の日付も、31日だったり30日だったり、28日だったりと、毎月変わるので、単純な設定では求められません。EOMONTH関数(End Of MONTH 月の終わり)も、割と使うことがある関数です。
WORKDAY関数
機能: 土日(オプションで祭日)を除いた前後の日付を求める
式: =WORKDAY(日付,日数,(祭日リスト))
*日数を正の数にすると、日数後。負の数にすると、日数前
*祭日リストは追加指定(省略可)
仕事で、「○○営業日後」という数え方をしていることも、よくありますよね。
土日がお休みの会社であれば、この関数を使って土日を除いた日付を求めることができます。
祝日リストも作っておけば、祝日の日を除くこともできます。
NETWORKDAYS関数
機能: 土日(オプションで祭日)を除いた日数を求める
式: =NETWORKDAYS(開始日,終了日,(祭日リスト))
*祭日リストは追加指定(省略可)
これは正直なところ、私は使ったことがありませんが、人事労務系で年間の営業日を決めたり、工場の稼働日数を計算したり、に使うんでしょうね。
DATEDIF関数
機能: 指定期間の年数を求める
式: =DATEDIF(開始日,終了日,単位)
*単位は、”Y”(年)、”M”(月)、”D”(日)
誕生日から年齢を計算するのに、今日の日付から誕生日を引いて日数を出して、それをYEAR関数で変換して1900を引けば良い、と思いません?
(言葉で説明すると分かりにくいですね)
でも、このやり方だと、残念ながら1日ずれてしまうのです。(上記参照)
なので、誕生日から年齢を計算する際は、このDATEDIF関数を使います。
DATEのディファレンス(違い)で、デイトディフ関数です。
日付に関しては、ここまで知っておけばほぼ完ぺきです。
まとめ
Excelの日付に関するテクニックを一挙にまとめてみました。
お仕事にもよりますが、取引には締日が指定してあるのが普通で、日付を計算することも多いです。
「あー、こんなことができるんだなぁ」と知っておくだけで、仕事がやりやすくなるはずです。
実務に使えるテクニックがあれば、ぜひ使ってみてくださいね。