目的のセルに「=DATEDIF(生年月日,今日の日付,"Y")」を入力

 顧客や社員の名簿で年齢欄を設ける際に困るのは,誕生日が来るたびに年齢のデータを一つ加算しなければならないこと。しかし実際にはそのような運用は不可能なので,年齢データが自動で最新のものにアップデートされる仕組みを組み込んでおきたい。そこで今回は,「TODAY(トゥデイ)関数」と「DATEDIF(デイトディフ)関数」の2つの関数を使って,ファイルを開いたときに自動的にその時点での年齢を表示させるテクニックをマスターしよう(図1)。

図1●会員名簿をExcelで作ったときに,会員の年齢が常に最新のデータになるようにしたい

TODAY関数でまず,“今日の”日付を求める

 TODAY関数とは,ファイルを開いたときの日付を表示する関数のこと。一方,DATEDIF関数とは,二つの日付の間でどれだけの時間が経過したかを示す関数だ。

 まず,「今日の日付」欄を作って,「=TODAY()」と入力する。関数では,通常はカッコ内に「引数(ひきすう)」を指定するが,この関数では何も指定しなくてよい(図2)。

図2●まずシート中に「今日の日付」欄を用意し,そこに「=TODAY()」と入力する

DATEDIF関数で「今日の日付」と「誕生日」の差分(=年齢)を求める

 次に,「年齢」欄に「=DATEDIF(B3,$C$1,"Y")」のように入力する。最初の「B3」は生年月日を入力したセル,次の「$C$1」はTODAY関数で表示させた「今日の日付」,「"Y"」は二つの日付の間に経過した「年数」を表示させるための指定だ。半角大文字の「Y」を「"」(ダブルクォーテーション)で挟み込む(図3)。これだけで正しい年齢が表示されるようになったので,あとは他のセルにもこの式をコピーしておこう(図4)。

 以上の操作で,会員名簿のファイルを開いたときに,自動的に今日の日付を元に各顧客の年齢を自動で求めて表示させることができるようになった。この2つの関数は,日付データに関わるまざまなシーンで役立つので,ぜひこの2つの組み合わせも含めてしっかりマスターしておこう。

図3●年齢欄に,DATEDIF関数を使って「生年月日」「今日の日付」「"Y"」の順に入力する。「今日の日付」は固定なので,セルの指定を絶対参照にしておくと,他のセルに数式をコピーするときに範囲がずれない

図4●最初のセルに年齢が表示される。あとはこの数式をコピーすればよい。右下の角を下方向にドラグして,他のセルにコピーすれば完了だ

※この記事はExcel 2002(Office XP)をもとに執筆しています。

【この連載について】

 Excelは仕事のツールとしては非常にポピュラーなソフトですが,多機能がゆえに,その便利な機能を十分に使いこなせていない人が非常に多いのではないでしょうか。そこでこの連載では,“操作自体は決して難しいものではないけれど,意外と知られていない”というExcelの便利な操作方法を厳選し,毎週1~2本のペースで紹介していきます。ぜひご期待ください!

■岡野 幸治 (おかの こうじ)

フリーランスライター。「日経PC21」「日経PCビギナーズ」などでパソコン関連の活用記事を中心に執筆中。