こんにちは。
@OfficeTAKUです。
Excelで日にちの計算ができるのは1900年1月1日以降。
家族の歴史を遡っていると、1900年以前、明治初期や江戸時代まででてきて、「Excelで計算できない!」ってことになります。
調べてみたら、マイクロソフトのサイトにマクロのコードが公開されていたので利用してみました。
Excel で 1900 年 1 月 1 日より前の年齢を計算するマクロ
docs.microsoft.com の 下記のページに公開されています。
Excel で 1900 年 1 月 1 日より前の年齢を計算する方法 | Microsoft Docs
利用方法も上記の記事に詳しいのですが、念の為、簡単に使い方を記しておきます。
Mac版Excelでも、Windows版Excelでも、動きます。
なお、執筆時点の筆者のExcelの環境は次の通りです。
- Mac: Microsoft Excel for Mac 16.51(21060200)
- Windows: Microsoft Excel for Microsoft 365 MSO(16.0.14026.20252)
使い方:1900年1月1日より前の年齢計算をするマクロ
使い方は至って簡単。
- docs.microsoft.comに掲載されているマクロコードをコピーし貼り付けてブックを保存する
- 指定された形式で日付を入力し、定義された関数で結果を求める。
1. マクロコードの貼り付けとファイルの保存
- 利用する Excel ブックを開いておきます。
- Visual Basicを起動します。
[Alt](Mac:[otion])+([Fn])+[F11] - メニューの[挿入]−[標準モジュール]をクリックします。
- ブラウザに切り替え、こちらのサイトのマクロコードをコピーします。
- Excel(Visual Basic)に戻り、先程コピーしたマクロコードを、用意してある標準モジュールに貼り付けます。
- Excelのワークシート画面に戻り、マクロ有効ブックとして保存します。
2. 計算の方法と注意点
上記の手順でマクロは使えるようになりました。
実際にデータを入力して試してみましょう。
ここでは、与謝野晶子を例に試してみます。
日にちの入力
セルに日にちを入力する時は、下記の形式で入力します。
ここは注意してください。日本にくらしていると馴染みのない形式ですから。
また、こうして入力しても日付形式になるわけではなく文字列です。
月/日/西暦
下図の例では、
セルB1: 12/7/1878(誕生日 明治11年12月7日)
セルB2: 5/29/1942(命 日 昭和17年5月29日)

を入れました。
ユーザー定義関数:AgeFunc
計算に使用するのはマクロで定義されたユーザー定義関数になります。
書式: =AgeFunc(開始日,終了日)
下図の例ではセルB3に下記の数式が入力されています。
=AgeFunc(B1,B2)

となります。
まとめ
Excelで1900年より前の年齢計算など日付の計算をする方法は、
上記、マクロの利用上の注意点は、
これで、戸籍謄本をさかのぼっても年齢計算ができ便利です。
作業用の列(セル)を使い、工夫して使いましょう。
ちなみに、与謝野晶子を例にとったのは特段意味がありません。
1900年より前に生まれて、1900年以降になくなった方、で、思いついたのがたまたま与謝野晶子だっただけです。