(LibreOffile Calc)生年月日から満年齢を求める

 LibreOffice Calcで満年齢を求める方法、つまり生年月日から基準日までの間に満何年が経過しているのかを求める方法です。

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

手順

DATEDIF関数を使う方法

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

 画像ではB列に生年月日の値が並んでいます。
 C3セルに次のような式を入力して下方にコピーし、2022年4月15日の時点での満年齢を求めています。

 C3セル

=DATEDIF(B3,"2022/4/15","Y")

 2つの日付を古い方、新しい方の順(つまり生年月日、基準日の順)で指定し、3つ目の引数を"Y"とすることで満年齢が求められます。


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

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

 C3セル

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

 DATEDIF関数の2つ目の引数をTODAY関数(引数は何も指定せず、ただカッコだけ)とすることにより、システムの日付を得ることができます。これにより常に「今日」の満年齢が表示されます。つまり現実の月日が進んでいくのに応じて値が変化します。

YEARS関数を使う方法

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

 ExcelにはないYEARS関数を使う方法です。
 ここでもB列に並んだ生年月日に対し、C3セルに次のような式を入力して下方にコピーすることで2022年4月15日の時点での満年齢を求めています。

 C3セル

=YEARS(B3,"2022/4/15",0)

 2つの日付を指定し、3つ目の引数を0(満経過年数を求める)とすることで満年齢が求められます。この引数を1にすると単に2つの日付の「年」の差が求められます(画像の例の場合、結果はすべて17になります)。
 YEARS関数は関数の意味自体はつかみやすいものの、3つ目の引数があり省略もできないためかえってわかりにくいのが残念な気がします。

 なお詳細は省略しますが、DATEDIF関数と同様にTODAY関数を組み込んで今日の満年齢を求めることもできます。