目次
このチュートリアルでは、Excelで誕生日から年齢を取得するさまざまな方法を示しています。 あなたは完全な年の数として年齢を計算し、今日の日付または特定の日付で年、月、日で正確な年齢を取得するための数式の手を学びます。
Excelには年齢を計算する特別な関数はありませんが、生年月日を年齢に変換する方法はいくつかあります。 このチュートリアルでは、それぞれの方法の利点と欠点を説明し、Excelで完璧な年齢計算式を作成する方法を示し、いくつかの特定のタスクを解決するためにそれを微調整する方法を示します。
Excelで生年月日から年齢を計算する方法
日常生活の中で、" あなたは何歳ですか? 「Microsoft Excelでは、月、日、時間、分単位で正確な年齢を計算する数式を作成することができます。 しかし、ここでは伝統的に、DOBから年単位で年齢を計算する方法を学びましょう。
年齢を年単位で表すExcelの基本的な計算式
通常、年齢を知るには、現在の日付から生年月日を差し引けばよい。 この従来の年齢計算式は、Excelでも利用できる。
セルB2に生年月日があると仮定すると、年齢(年)を計算する式は次のようになる。
=(today()-b2)/365
式の最初の部分(TODAY()-B2)は、現在の日付と生年月日の差を日数で返し、その数字を365で割って年数を求めます。
しかし、以下のスクリーンショットのように、ほとんどの場合、10進数の数値が返されます。
完全な年数を表示するには、INT関数で小数を切り捨てて、最も近い整数にします。
=int((今日()-b2)/365))
欠点は Excelでこの年齢計算式を使うと、かなり正確な結果が得られますが、完璧ではありません。 1年の平均日数で割ると、ほとんどの場合うまくいきますが、時々年齢がおかしくなります。 たとえば、2月29日生まれの人が今日2月28日だとすると、この計算式では1日分年をとることになります。
ただし、4年目は366日なので365で割るのではなく、365.25で割る方法もありますが、これも完全ではありません。 たとえば、うるう年を迎えていない子どもの年齢を計算する場合、365.25で割ると間違った結果になります。
このチュートリアルでは、年に関係なく年齢を正確に計算する特別な関数をいくつか紹介します。
YEARFRAC関数で生年月日から年齢を計算する
ExcelでDOBを年齢に変換する、より確実な方法は、YEARFRAC関数を使うことです。これは、年の端数、つまり2つの日付の間の全体の日数を返します。
YEARFRAC関数のシンタックスは以下のとおりです。
YEARFRAC(start_date, end_date, [basis])最初の2つの主張は明白であり、追加的な説明はほとんど必要ない。 基本情報 は、使用する日数基準を定義するオプションの引数である。
完全に正しい年齢計算式を作るには、YEARFRAC関数に次の値を与えます。
- 開始日 - 生年月日
- 終了日 - TODAY()関数は、今日の日付を返す関数です。
- 基本情報 - 使用基準 1 これは、1ヶ月の実際の日数を1年の実際の日数で割るようにExcelに指示します。
以上を踏まえて、生年月日から年齢を計算するExcelの計算式は次のようになります。
YEARFRAC( 生年月日 , TODAY(), 1)生年月日がセルB2にあると仮定すると、数式は次のような形になる。
=yearfrac(b2, today(), 1)
先ほどの例と同様に、YEARFRAC関数の結果も小数点以下の数値になっています。 これを修正するには、小数点以下の数値は必要ないので、最後の引数に0を指定してROUNDDOWN関数を使用します。
そこで、Excelで年齢を計算するための改良されたYEARFRACの計算式を紹介します。
=rounddown(yearfrac(b2, today(), 1), 0)
DATEDIFを使用してExcelで年齢を計算する
Excelで生年月日を年齢に変換するもう一つの方法は、DATEDIF関数を使うことです。
DATEDIF(start_date, end_date, unit)この関数は,2つの日付の差を,年,月,日などさまざまな時間単位で返すことができる。 ユニット の議論になります。
- Y - の数を返します。 しゅうねん 開始日と終了日の間に
- M - の数を返します。 全月 の間にある。
- D - の数を返します。 日間 の間にある。
- YM - リターン つき 日や年を無視した
- MD - の差を返します。 日間 月や年を無視した
- YD - の差を返します。 日間 , 年を無視する。
を計算することを目的としているので ねんれい 歳月 は、"y "の単位を使用しています。
DATEDIF( 生年月日 , TODAY(), "y")この例では、DOBはセルB2にあり、年齢計算式でこのセルを参照します。
=DATEDIF(B2, TODAY(), "y")
この場合、"y "単位のDATEDIF式で通年を計算するため、追加の丸め関数は必要ない。
誕生日から年齢を取得する方法(年、月、日単位
このように、年齢を満年齢で計算するのは簡単ですが、それだけでは不十分です。 正確な年齢、つまり、ある人の誕生日から現在の日付までの年数、月数、日数を知りたい場合は、3種類のDATEDIF関数を記述してください。
- 年数を取得するため。
=datedif(b2, today(), "y")
- 月数を取得するため。
=datedif(b2, today(), "ym")
- 日数を取得するため。
=datedif(b2,today(), "md")
ここで、B2 は生年月日である。
そして、上記の関数を次のように1つの数式に連結します。
=DATEDIF(B2,TODAY(), "Y") & DATEDIF(B2,TODAY(), "YM") & DATEDIF(B2,TODAY(), "MD")
上記の数式は、以下のスクリーンショットのように、3つの数値(年、月、日)を1つのテキストストリングに連結して返します。
この結果をより意味のあるものにするために、数字をカンマで区切って、それぞれの値の意味を定義してください。
=DATEDIF(B2,TODAY(), "Y") & " 年, " & DATEDIF(B2,TODAY(), "YM") & " 月, " & DATEDIF(B2,TODAY(), "MD") & " 日数"
結果、見違えるようになりました。
この式は非常に有効ですが、ゼロ値を隠すことでさらに改善できます。 そのためには、各DATEDIFごとに、0をチェックするIF文を3つ追加します。
=IF(DATEDIF(B2, TODAY(), "y")=0,",DATEDIF(B2, TODAY(), "y")&" years, ")& IF(DATEDIF(B2, TODAY(), "ym")=0,",DATEDIF(B2, TODAY(), "ym")&" months, ")& IF(DATEDIF(B2, TODAY(), "md")=0,",DATEDIF(B2, TODAY(), "md")&" days)であり、DATEIF(), "y"," (=",",")&AND(), "y"),DATA("), "は"(0, "2,")(2)(2)(2)(1,")(の場合))である。
次のスクリーンショットは、最終的なExcelの年齢計算式の動作を示しています。 ゼロ以外 の値です。
ヒント:年齢を計算するExcelの数式をお探しの場合 しゅんじゅう の場合、上記の数式から、日数を計算する最後のIF(DATEDIF())ブロックを削除してください。
Excelで年齢を計算するための具体的な計算式
もちろん、すべてのシナリオをカバーすることはできませんが、以下の例は、あなたの特定のタスクに応じて年齢計算式を微調整する方法についてのアイデアを提供します。
Excelで特定の日付の年齢を計算する方法
ある日付の人の年齢を知りたい場合は、前述のDATEDIFの年齢計算式を使いますが、第2引数のTODAY()関数を特定の日付に置き換えてください。
生年月日をB1とすると、以下の計算式で2020年1月1日時点の年齢が返されます。
=DATEDIF(B1, "1/1/2020", "Y") & " 年, " & DATEDIF(B1, "1/1/2020", "YM") & " 月, " & DATEDIF(B1, "1/1/2020", "MD") & " 日数"
年齢の計算式をより柔軟にするために、どこかのセルに日付を入力し、そのセルを計算式で参照することができます。
=DATEDIF(B1,B2, "Y") & " 年, "& DATEDIF(B1,B2, "YM") & " 月, "&DATEDIF(B1,B2, "MD") & " 日"
ここで、B1 は DOB、B2 は年齢を計算したい日付である。
ある年の年齢を計算する
この式は、計算する完全な日付が定義されておらず、年だけがわかっているような場合に便利です。
例えば、医療データベースを扱う場合、患者さんが最後に精密検査を受けた時の年齢を調べることが目的だとします。
3行目からB列に生年月日、C列に最終受診年を仮定すると、年齢計算式は次のようになる。
=DATEDIF(B3,DATE(C3, 1, 1), "y")
健康診断の正確な日付は定義されていないので、DATE関数に任意の日付と月を引数として、例えばDATE(C3, 1, 1)のように使用するのである。
DATE関数はセルB3から年を取り出し、指定された月と日の数字(この例では1-Jan)を使って完全な日付を作り、その日付をDATEDIFに渡します。 その結果、特定の年の1月1日時点での患者の年齢が得られます。
N歳を迎える日を調べる。
1978年3月8日に生まれた友人が、何月何日に50歳を迎えるかを知るにはどうしたらよいでしょうか。 通常は、その人の生年月日に50歳を足します。 Excelでは、DATE関数を使って同じことをします。
=date(year(b2) + 50, month(b2), day(b2))
ここで、B2 は生年月日である。
数式に年数をハードコーディングする代わりに、ユーザーが任意の年数を入力できる特定のセルを参照することができます(下のスクリーンショットのF1)。
異なるセルの日、月、年から年齢を計算する
生年月日が3つのセルに分かれている場合(例えば年がB3、月がC3、日がD3)、この方法で年齢を計算することができます。
- DATE関数とDATEVALUE関数を使用して生年月日を取得します。
DATE(B3,MONTH(DATEVALUE(C3& "1")),D3)
- 上記の数式をDATEDIFに埋め込んで、生年月日から年齢を年、月、日単位で計算します。
=DATEDIF(DATE(B3, MONTH(DATEVALUE(C3& "1")), D3), TODAY(), "y") & " 年、 "& DATEDIF(DATE(B3, MONTH(DATEVALUE(C3& "1")), D3),TODAY(), "ym") & " 月、 "& DATEDIF(DATE(B3, MONTH(DATEVALUE(C3& "1"), D3), TODAY(), "md") & " 日数"
日付の前後の日数を計算する例については、「Excelで日付からの日数や日付までの日数を計算する方法」をご覧ください。
年齢計算機(エクセル
エクセルで年齢計算をしたい場合は、以下に説明するDATEDIFの計算式を使って作ることができます。 また、車輪の再発明をしたくない場合は、弊社のエクセル専門家が作成した年齢計算機を使用することができます。
Excelで年齢計算機を作成する方法
Excelで年齢計算式を作る方法がわかったので、例えばこのようなカスタム年齢計算機を作ることができます。
注)埋め込みワークブックをご覧になるには、マーケティングクッキーを許可してください。
上の図は、Excel Onlineのシートを埋め込んだものです。対応するセルにあなたの生年月日を入力すれば、すぐにあなたの年齢がわかります。
電卓は、セルA3の生年月日と本日の日付から、以下の計算式で年齢を算出します。
- B5の数式は、年齢を年、月、日単位で計算します。
=DATEDIF(B2,TODAY(), "Y") & " 年, " & DATEDIF(B2,TODAY(), "YM") & " 月, " & DATEDIF(B2,TODAY(), "MD") & " 日数"
- B6の計算式は年齢を月単位で計算します。
=DATEDIF($B$3,TODAY(), "m")
- B7 の数式は、日数で年齢を計算します。
=DATEDIF($B$3,TODAY(), "d")
Excelフォームコントロールの経験があれば、次のスクリーンショットに示すように、特定の日付での年齢を計算するオプションを追加することができます。
このために、いくつかのオプションボタン( デベロッパータブ > インサート > フォームコントロール > オプションボタン そして、今日の日付かユーザーが指定した日付のどちらかで年齢を取得するIF/DATEDIF式を書きます。
この式は、次のようなロジックで動作します。
- もし 本日の日付 オプションボックスが選択されると、リンク先のセル(この例では I5)に値 1 が表示され、年齢式は今日の日付に基づいて計算されます。
IF($I$5=1, DATEDIF($B$3,TODAY(), "Y") & " 年, " & DATEDIF($B$3,TODAY(), "YM") & " 月, " & DATEDIF($B$3, "MD") & " 日間")
- もし 具体的な日付 オプションボタンが選択され、かつセルB7に日付が入力された場合、指定された日付で年齢が計算されます。
IF(ISNUMBER($B$7), DATEDIF($B$3, $B$7, "Y") & " 年, " & DATEDIF($B$3, $B$7, "YM") & " ヶ月、 " & DATEDIF($B$3, $B$7, "MD") & " 日 ", "))
最後に、上記の関数を互いに入れ子にして、完全な年齢計算式(B9)を得ることができます。
=IF($I$5=1, DATEDIF($B$3, TODAY(), "Y") & " Years, " & DATEDIF($B$3, TODAY(), "YM") & " Months, " & DATEDIF($B$3, TODAY(), "MD") & " Days", IF(ISNUMBER($B$7), DATEDIF($B$3, $B$7,"Y") & " Years, " & DATEDIF($B$3, $B$7,"YM") & " Months, " & DATEDIF($B$3, $B$7,"MD") & " Days", ""))
B10とB11の式は、同じロジックで動作しますが、年齢を完全な月数または日数で返すDATEDIF関数が1つだけ含まれているので、よりシンプルになります。
詳しくは、この「Excel年齢計算機」をダウンロードして、セルB9:B11の数式を調べてみてほしい。
年齢計算機(Excel版)のダウンロード
すぐに使えるExcel用年齢計算機
Ultimate Suiteのユーザーは、Excelで独自の年齢計算機を作ることに煩わされることはありません。
- 年齢計算式を挿入したいセルを選択し Ablebits Tools tab> 日付と時刻 をクリックします。 日付・時刻ウィザード ボタンをクリックします。
- Date & Time Wizardが起動し、直接、次の画面に進みます。 年齢 タブで表示します。
- について 年齢 タブで、3つ指定することができます。
- 出生データ をセル参照またはmm/dd/yyyy形式の日付で指定する。
- 年齢 きょうというひ または 特定日 .
- 年齢を日数、月数、年数で計算するか、正確な年齢で計算するかを選択します。
- をクリックします。 挿入式 ボタンをクリックします。
完了!
選択したセルに数式が一瞬挿入されるので、フィルハンドルをダブルクリックして列の下にコピーします。
お気づきのように、Excelの年齢計算機で作成した計算式は、これまで説明したものよりも複雑ですが、「日」「日」といった時間単位の単数・複数に対応しています。
0日」のようなゼロ単位をなくしたい場合は、「0日」を選択します。 しないでください。 ショウ・ゼロ・ユニット のチェックボックスにチェックを入れます。
この年齢計算機や、さらに60種類のExcel用時間節約アドインを試してみたい方は、この記事の最後にあるUltimate Suiteの試用版をぜひダウンロードしてください。
特定の年齢を強調する方法(特定の年齢未満または以上)
Excelで年齢を計算するだけでなく、特定の年齢以下や年齢以上を含むセルをハイライト表示する必要がある場面もあります。
年齢計算式が完全な年数を返すのであれば、これらのような簡単な式をもとに、通常の条件付き書式ルールを作成すればよいのです。
- 18歳以上の年齢を強調する場合:=$C2>=18
- 18歳未満を強調する場合:=$C2<18
ここで、C2 は Age 列の一番上のセルです(列のヘッダーを含まない)。
しかし、年齢を年・月、または年・月・日で表示する場合はどうしたらよいでしょうか。 この場合、生年月日から年齢を計算するDATEDIF式に基づくルールを作成する必要があります。
生年月日が2行目からB列にあるとすると、計算式は次のようになります。
- 年齢を強調するために 下 18(黄)です。
=DATEDIF($B2, TODAY(), "Y")<18
- 年齢を強調するために 間 18歳、65歳(緑色)。
=AND(DATEDIF($B2, TODAY(), "Y")>=18, DATEDIF($B2, TODAY(), "Y")<=65)
- 年齢を強調するために 上 65(青)。
=DATEDIF($B2, TODAY(), "Y")>65
上記の数式をもとにルールを作成するには、ハイライトしたいセルまたは行全体を選択し、その上で ホーム tab> スタイル をクリックします。 条件付き書式設定 > 新ルール... > 数式を使用して、どのセルをフォーマットするかを決定する .
詳しい手順は、「数式をもとにした条件付き書式ルールを作成する方法」をご覧ください。
以上、エクセルで年齢を計算する方法でした。 数式は簡単に覚えられたと思いますので、あなたのワークシートで試してみてください。 読んでくださってありがとうございました!来週のブログでお会いしましょう
ダウンロード可能なもの
Excel 年齢計算例 (.xlsx ファイル)
Ultimate Suite 14日間フル機能版(.exeファイル)