多くの場合、幼児教育では、年単位の子供の年齢。月の形式は、報告、承認、および評価に必要です。基本的に、この形式は、誕生からの経過年数と月数をピリオドで区切って表示します。

希望の年齢に達するには、いくつかの方法があります。作業を行うために選択する数式は、文字通り、数式の好みによって異なります。

セルA1に生年月日があるとすると、日付に数学を使用して適切な情報を決定できると思うかもしれません。たとえば、次の式を使用できると思うかもしれません:

=NOW() - A1

これにより、2つの日付の差である値が生成されますが、結果にカスタム形式( “yy.mm”)を適用すると、求められているYears.Monthsが得られないことがわかります。 。あなたは何かを近づけます。年は正しいですが、月は1から12まで変化し、0から11まで変化するはずです(誰かが12歳と0か月になることもありますが、12歳と12か月と言うのは適切ではありません。)

これは、定型的なアプローチのためにキャストを開始する必要があることを意味します。簡単な式は次のようになります:

=YEAR(NOW())-YEAR(A1) & "." & MONTH(NOW())-MONTH(A1)

上記には多くのバリエーションがありますが、問題は、すべてが生年月日と比較して今日の月だけを見ていることです。月の日は考慮されません。それは何が重要ですか?なぜなら、誕生からの経過月数は、誕生月の日と現在の月の日との比較に依存しており、式ではその区別ができないためです。

したがって、次のような、経過した年と月を実際に計算しようとする、より複雑な式を検討することもできます。

=TEXT(INT((NOW()-A1)/365.25),"##0")&"."&TEXT(INT(MOD(NOW()-A1,365.25)/31),"00")

これは必要なものにはるかに近づきますが、それでも誕生日が近づく月のちょうどその頃に1日か2日オフになる可能性があります。さらに近いのは、YEARFRAC関数を使用する式です。

=ROUNDDOWN(YEARFRAC(A1,TODAY()),0)&"."&ROUNDDOWN((YEARFRAC(A1,TODAY())-ROUNDDOWN(YEARFRAC(A1,TODAY()),0))*12,0)

ただし、最良の(そして最も単純な)定型的アプローチは次のとおりです。

=DATEDIF(A1,NOW(),"y") & "." & DATEDIF(A1,NOW(),"ym")

この数式は、2つの日付の差を決定するDATEDIF関数に依存しています。関数によって返される値は、関数に渡される3番目のパラメーターによって異なります。この場合、DATEDIFの最初の呼び出しは経過年数を返し、2番目の呼び出しは経過月数を返します。これまでに説明した式の中で最も正確な結果を提供します。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(9148)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。