- PCソフトウェア
- 2019年9月21日
Office 365 Soloをオンラインで購入!サブスクリプション有効期限延長対応
Office365Solo導入は2年前 今まで何度もUSB-C充電器や……
エクセルには、合計を求める、平均を求める、最大値・最小値を求めるといった様々な計算結果を求めることができる【関数】があります。
エクセルを使っていく上で関数の使い方を知ることは大事で、順番としては関数の使い方・考え方をお話しした上で日付の処理について書いていくものかもしれませんが、先日エクセルの日付の計算で単純に足し算・引き算ができる事を書いていたので、日付でよく使う関数で計算する方法をお話しします。
求めたい日付が、1日後、1日前や、2週間後であれば、単純に足し算・引き算で求めることができたわけですが、求めたい日付が当月の末日、1か月後の末日、1か月前の末日、指定月後の末日、指定月の1日といった場合には、単純に足し算・引き算では求めることができません。
そのような日付を求める場合にどのように計算を行うか考え方と、計算に使用する関数を説明していきたいと思います。
エクセルで日付の計算を行う際には入力された値が【シリアル値】になっていなければ計算(処理)ができません。
以下の説明では入力されている値はシリアル値で、表示形式が【日付】になっていて、日付け形式で表示されていない部分は【数値】として入力されている状態とします。
年(西暦)・月・日の値を指定して、シリアル値を得るにはdate関数を使います。
=date(西暦年, 月, 日)と、関数の引数(ひきすう)として、求めたい日付の西暦年と月・日を指定します。
例えば今日 2019年6月21日の日付(シリアル値)を得たい場合は
=date(2019, 6, 21)と入力します。
date関数に直接値を使わずに、年・月・日の値が入力されたセルを使って計算することもできます。セルを指定する方がエクセルでは多くなると思います。
下の例ではA4のセルに2019, A5のセルに6, A6のセルに21が入力されている場合にその値を使って日付(シリアル値)を得るには=date(A4, A5, A6) と入力します。
セルを指定(セルの番地を入力)した結果も同様にシリアル値を得ることができます。
カレンダーを見れば簡単にわかるかもしれない末日もエクセルで処理をする場合は、6月だったら30日、7月だったら31日、2月だったら28日?29日?今年はうるう年?などと考え始めると、求める日付の条件が多くなってしまうので大変です。
そこで、末日(月末)の日付の考え方を変えてみます。今回の例では2019年6月21日を基準とし、翌月の1日は必ず存在するので2019年7月1日をまず求めることにします。
=date(2019, 6+1, 1) と入力することで 2019/7/1のシリアル値を得ることができます。
2019年7月1日の1日前は2019年6月30日となりますが、これは6月の末日(月末)にあたります。つまり末日を求めたい場合に、翌月の1日を得た上で、その前日を計算すれば末日を求めることができることになります。前日は -1 することで求められます。
ある日付から翌月の1日を計算し、その日付の前日を求めることで結果が得られます。
翌月の末日を求めるには、翌々月の1日を求めその前日を計算すればよいので
=date(2019, 6+2, 1) – 1 と計算することで2019年7月31日を求めることができます。
先月の末日を求めるには、当月の1日を求めその前日を計算すればよいので
=date(2019, 6, 1) – 1 と計算することで2019年5月31日を求めることができます。
date関数を使う事で日付(シリアル値)を得ることができ、指定する年・月・日を変化させることで、求めたい日付を計算できる点はシンプルな処理だと思います。
仕事上よく使われる日付、「末日締め処理、月末の支払い、翌月の末日」といった日付を求める考え方として、ある月の1日の前日を求めることで月末の日付が得られるとしましたが他にも計算はできると思います。
今回の説明では、本日の日付の西暦年・月・日をセルに数値として入力し、その値を計算に使っていますが、エクセルではある日付から年・月・日のデータを得ることができるので、次回日付を処理する関数としてお話ししたいと思っています。