いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)生年月日から満年齢を求める

 Googleスプレッドシートで満年齢を求める、つまりある日からある日までの間に満何年が経過しているのかを求める方法についてです。
 各種の表計算ソフトと同様に、便利な関数が用意されています。

  • 「=DATEDIF(生年月日,基準日,"Y")」という式で満年齢を求めることができます。

手順

指定日における満年齢を求める

f:id:accs2014:20190630144243p:plain:right:w450

 B列に生年月日として1981/5/31~1981/6/2までの日付が並んでいます。
 これらの生年月日に生まれた人が、2019/6/1時点で満何歳なのかを求めるものとします。

 B3セルに次のような式を入力し、下方にフィルコピーします。

=DATEDIF(B3,"2019/6/1","Y")

 DATEDIF関数は2つの日付の間の経過期間(日、週、月など)を求める関数です。
 1つ目と2つ目の引数によって2つの日付を指定します。ここで、2つ目の日付の方が新しい日付(または1つ目の日付と同じ日付)である必要があります。
 そして3つ目の引数ですが、満年齢を求める際には「"Y"」と指定します。
 

f:id:accs2014:20190630144247p:plain:right:w450

 フィルコピー後の結果はこのようになります。
 2019/6/1時点では5/31生まれの人と6/1生まれの人が38回目の誕生日を迎えていますので満38歳、つまり値は38となります。
 6/2生まれの人はまだ誕生日を迎えていませんので満37歳、つまり値は37となります。

今日の満年齢を求める

f:id:accs2014:20190630144252p:plain:right:w450

 今日(スプレッドシートを表示している、まさにその日)の満年齢を求めることもできます。
 上記の例と同様にB列に生年月日が並んでいます(ただし上記例とは日付が異なります)。
 これらの生年月日に生まれた人が、「今日」の時点で満何歳なのかを求めるものとします。
 

 B3セルに次のような式を入力し、下方にコピーします。

=DATEDIF(B3,TODAY(),"Y")

 TODAY関数(引数は何も指定せず、ただカッコだけにします)によりシステムの日付を得ることができます。よって常に「今日」の満年齢が求まります。
 

f:id:accs2014:20190630144255p:plain:right:w450

 実行結果です(実行日は2019/6/30)。
 6/29生まれの人と6/30日生まれの人は38回目の誕生日を迎えていますので38となり、7/1生まれの人はまだですので37となります。
 式は随時再計算されますので、7/1にこのシートを開くと、値はいずれも38となります。