日付の差の計算はDATEDIF関数を使えばOK[年齢計算は日数設定で解決]

今回の記事では

日付の差を計算して年月日の日数を求めてくれる関数は無いの?

日数計算は結構面倒だから何とか自動化したい

年齢を関数を使って計算する方法って無いの?

いくつになったのかパッと計算してくれると楽なのに

こういった疑問に答えます

✔日付の差から日数を求める方法のテーマ

①日付を自動的に計算するためにはDATEDIF関数を使えば上手くいきます

②年齢を計算をするには月数や日数の設定を工夫することで解決出来ます

この記事を書いているのはOfficeを約20年間活用しながら

ITを活用したエステの経営マネジメントしている私の経験を基に

「日付の差から日数を求める方法のテーマ」に関して実体験に基づいて解説しています

今回の内容を一緒にやりたい場合は▼のファイルをダウンロードして下さい

日付を自動的に計算するためにはDATEDIF関数を使えば上手くいきます

日付の差から日数を計算するためにはDATEDIF(デイトディフ)関数を使うのが最適解です

なぜなら、これ以上最適な関数は他に無いからです

それでは早速、DATEDIF関数を使った具体的な方法について解説していきます

注意

DATEDIF関数は特殊な関数なので普段の関数のようには使えません
基本的な設定方法は一緒ですが、直接入力する以外にこの関数を使う方法が無く入力のヒントも表示されてないので気をつけて下さい

こんな風に「潮干狩りのシーズン」が開始日~終了日までどれくらいの日数が掛かるか自動で表示させてみましょう

まずは年数から見ていきましょう

年数を求めるには「=DATEDIF($A$5,A$9,“y”)」と設定します

DATEDIF関数の基本的な使い方は「=DATEDIF(開始日,終了日,表示方法)」です

今回の内容を日本語にすると「=DATEDIF(A5セルの日付~,A9セルの日付までの,年数を表示してね)」という意味です

ポイントは「表示方法」を設定することで「年数・月数・日数」を自動で計算してくれます

表示方法の設定は次の通りです

表示方法意味
Y(y)期間内の満年数
M(m)期間内の満月数
D(d)期間内の満日数
YM(ym)年数を無視した月数
YD(yd)年数を無視した日数
MD(md)年数と月数を無視した日数

今回の場合は「”y”」の設定なので月数を表示してくれました

また、表示方法は「大文字でも小文字でも結果は変わりません」

こんな風に結果には影響しないので好きな方を使って大丈夫です

次は各設定を一気に見てみましょう

[週数]は工夫していますが、それ以外は基本的に同じ設定をしています

表示設定をかえることで「年月日」をすぐに切り替えられるのがDATEDIF関数の良いところですね

では、週数に関して詳しく見てみましょう

週の設定はDATEDIF関数だけでは出来ません

そのため「日数を7で割る」必要があります

更に端数処理が必要なので設定方法を順を追ってみてみましょう

こんな風に週に直すために「日数を1週間(7)で割る」とこんな風に小数点以下の数字が出てきます

もし、「表示形式が日付」の場合は標準に直して下さい

最後にこの小数点を「円未満切り捨て」にします

円未満切り捨ての端数処理はROUNDDOWN関数を使うのでROUNDDOWN関数にDATEDIF関数をネストさせましょう

設定内容はこんな感じで仕上げに表示形式を「○週」と設定させてあげればOKです

ちなみに設定内容は「0”週”」と表示させて上げればOKです

今回の式を見ると「=ROUNDDOWN(DATEDIF($A$5,A$9,”d”)/7,0)」なのでこれを日本語にしてみましょう

「=ROUNDDOWN(DATEDIF関数の結果を7で割ってね,DATEDIF関数の結果の円未満の端数は切り捨ててね)」という意味になります

ROUNDDOWN関数の「0」は円未満という意味ですね

こんな感じで応用すると「年月日+週」を自動的に求めることができるのですごく便利になります

もう一点注目してもらいたいのが今日の日付の設定です

ちょっとした工夫をしているので確認してみましょう

それがこの設定です

今日の日付はExcelを開いたタイミングがほとんどですよね

つまり、Excelを開いたタイミングで今日の日付が自動的に表示されたらスムースです

そのためにはTODAY(トゥデイ)関数を使えば簡単に設定出来ます

TODAY関数もちょっと特殊ですが「=TODAY()」と入力しておくだけで、今日の日付を自動で表示してくれるので活用してみて下さい

DAYS関数で日数を簡単に表示出来る

日付の表示だけならDATEDIF関数よりもDAYS関数が便利です

では、実際に設定方法について見てみましょう

設定はこれだけです

日数だけならこちらの関数の方が簡単なので試してみて下さい

今回の式は「=DAYS(A9,A5)」でDAYS関数の基本的な使い方は「=DAYS(終了日,開始日)」というシンプルさです

すごく簡単なので好きな方で使い分けて下さい

繰り返しになりますが、日付の差から日数を計算するためにはDATEDIF関数を使うのが最適解です

年齢を計算をするには月数や日数の設定を工夫することで解決出来ます

誕生日から現時点までの年齢を知るためには表示方法を工夫することで簡単に計算出来ます

なぜなら、「m」や「d」といった設定では計算出来ませんがもう一つの方法なら可能だからです

では具体的な方法を見ていきましょう

こんな風に年月日で現在の年齢を表示することが出来ます

では、年月日の各設定について見ていきましょう

まずは年度(歳)です

こんな風に年数は今までと特に変わらずに設定すれば良いので特に問題は無いですね

では、続いて月数(ヶ月)の設定を見てみましょう

こんな風に月数以降は設定内容が少し違います

式は「=DATEDIF(C8,$A$5,”ym”)」なので今までとの違いは「ym」の部分だけですね

この「ym」は年数を無視した月数を表示する設定です

つまり、9月~2月の間の月数なので「10月・11月・12月・1月の4ヶ月」という意味になります

次は日数を見ていきましょう

日数の設定はこんな感じです

月数とほぼ一緒で式は「=DATEDIF(C9,$A$5,”md”)」ですね

ポイントは月数の時とほぼ一緒で「md」の部分で意味は「年月を無視した日数を表示」です

つまり、31日~6日なので1日・2日・3日・4日・5日・6日の6日間で6日と返します

但し、厳密には1日のズレが起こることがありますが、そんなもんなんだなと思ってもらっていれば大丈夫です

こんな風に今自分が何歳なのか知ることが簡単に出来ます

また、勤続年数などもほぼ同じことをすれば、計算出来るので意外と実務でも活躍してくれます

最後に年齢を1つのセルに表示する方法だけ見ておきましょう

設定方法は簡単でそれぞれの結果を繋げて「年月日」の文字も一緒に繋げてしまえばOKです

設定内容はこんな感じです

「=DATEDIF(C8,$A$5,”y”)&”歳”&DATEDIF(C8,$A$5,”ym”)&”ヶ月”&DATEDIF(C8,$A$5,”md”)&”日”」

一見複雑そうですが、さっきの式と文字をつなぎ合わせてあるだけなのでそこまで難しくは無いですよ

ポイントは「DATEDIF(C8,$A$5,”y”)&”歳”&」のように「関数+&+文字+&+」といった感じで「&」を使って上手く1つのセルで年齢を表現するだけです

ちょっと慣れが必要ですが意外と使えるテクニックなので一度はチャレンジしてみて下さい

繰り返しになりますが、誕生日から現時点までの年齢を知るためには表示方法を工夫することで簡単に表示出来ます

オススメのExcel関数の解説書 5選

関数を本で学ぶ時は次に上げるものがオススメです

本を購入をオススメしている理由と各本の紹介に関して、下記の記事で詳しく解説しているので合わせて読んでみてください

コメントを残す

メールアドレスが公開されることはありません。