目次
ExcelのYEAR関数の構文と使い方を説明し、日付から年を抽出する、日付を月と年に変換する、生年月日から年齢を計算する、などの計算式を例として紹介するチュートリアルです。 は、うるう年を判定します。
最近の記事では、Excelで日付や時間を計算するさまざまな方法を検討し、WEEKDAY、WEEKNUM、MONTH、DAYなどの便利な関数を学びました。 今日は、より大きな時間単位に焦点を当て、Excelワークシートで年を計算することについてお話します。
このチュートリアルでは、次のことを学びます。
エクセルのYEAR関数
ExcelのYEAR関数は、指定した日付に対応する4桁の年を1900年から9999年までの整数値で返します。
ExcelのYEAR関数の構文は、これ以上ないほどシンプルです。
YEAR(シリアルナンバー)serial_numberは、検索したい年の有効な任意の日付です。
エクセルYEAR式
ExcelでYEARの数式を作るには、いくつかの方法でソースの日付を供給することができます。
DATE機能を使う
Excelで日付を指定する最も確実な方法は、DATE関数を使用することです。
例えば、以下の式で2015年4月28日の年度を返します。
=year(日付(2015, 4, 28))
日付を表すシリアルナンバーとして
Excelの社内システムでは、日付は1900年1月1日から始まる通し番号で、1番として格納されています。 Excelでの日付の格納方法については、Excelの日付形式をご覧ください。
2015年4月28日は42122と記憶されているので、この数字をそのまま計算式に入力すればよい。
=YEAR(42122)
しかし、この方法は、システムによって日付の番号付けが異なる可能性があるため、推奨できません。
セル参照として
あるセルに有効な日付があると仮定すれば、そのセルを参照するだけでよい。 たとえば、以下のようなことだ。
=YEAR(A1)
他の計算式の結果
例えば、TODAY()関数を使えば、現在の日付から年を抽出することができます。
=YEAR(TODAY())
テキストとして
簡単な例では、YEAR式は、次のようにテキストで入力された日付も理解できます。
=YEAR("28-4-2015")です。
また、日付がテキスト値で提供された場合、マイクロソフトは正しい結果を保証しないことを忘れないでください。
次のスクリーンショットは、上記のYEARの数式をすべて実行したもので、すべて期待通りの2015年を返します :)
Excelで日付を年に変換する方法
Excelで日付情報を扱う場合、通常は月、日、年を含む完全な日付がワークシートに表示されます。 しかし、製品の発売や資産の買収など、大きな節目や重要なイベントについては、元のデータを再入力または修正せずに年だけを表示したい場合があります。 以下に、これを実現するための3つの簡単な方法を紹介します。
例1.YEAR関数を使って日付から年を抽出する
実際、ExcelのYEAR関数を使って日付を年に変換する方法は、すでにご存知でしょう。 上のスクリーンショットでは、たくさんの数式を紹介しています。 YEAR関数は、あらゆる形式の日付を完全に理解することに注目してください。
例2.Excelで日付を月と年に変換する
与えられた日付を年や月に変換するには、TEXT関数で各単位を個別に抽出し、それらの関数を1つの計算式の中で連結することができます。
TEXT機能では、月や年を表すコードを次のように使い分けることができます。
- "mmm"...1月~12月のように、月名を省略したもの。
- "mmmm" - January - Decemberのように完全な月名。
- "yy" - 2桁の年数
- "yyyy" - 4桁の年数
出力を見やすくするために、以下のようにコンマやハイフンなどでコードを区切るとよいでしょう。 日付から月、年へ の式で表されます。
=TEXT(B2, "mmmm") & ", " & TEXT(B2, "yyyy")
または
=TEXT(B2, "mmm") & "-" & TEXT(B2, "yy")
ここで、B2は日付を含むセルである。
例3.日付を年号で表示する
もし、ワークブックの日付がどのように保存されているかが重要でない場合、Excelは元の日付を変更せずに年だけを表示することができます。 つまり、セルに完全な日付が保存されていても、年だけを表示させることができるのです。
この場合、数式は必要ありません。 セルのフォーマット ダイアログで Ctrl + 1 を押しながら カスタム のカテゴリーに分類されます。 番号 タブで、以下のコードのいずれかを入力します。 タイプ ボックスを使用します。
- yy - 2桁の年号を表示します(00~99)。
- yyyy - 1900〜9999のように4桁の年号を表示します。
この方法について覚えておいてください は、元の日付を変更しません このようなセルを数式で参照した場合、Microsoft Excelは年の計算ではなく、日付の計算を実行します。
日付の書式の変更については、こちらのチュートリアル「Excelで日付の書式を変更する方法」で詳しく説明しています。
Excelで生年月日から年齢を計算する方法
Excel で生年月日から年齢を計算するには、DATEDIF、YEARFRAC、INT 関数と TODAY() を組み合わせて使用する方法があります。 TODAY 関数は年齢を計算する日付を提供するので、数式は常に正しい年齢を返すようになります。
生年月日から年齢を計算する(年単位
人の年齢を年単位で計算する従来の方法は、現在の日付から誕生日を引くことです。 この方法は日常生活では問題ありませんが、類似のExcelの年齢計算式は完全に正しいわけではありません。
INT((TODAY()-)) DOB )/365)ここで、DOBは生年月日である。
式の最初の部分(TODAY()-B2)で日数の差を計算し、それを365で割って年数を求めます。 この式の結果はほとんどの場合10進数なので、INT関数で最も近い整数に切り捨てさせます。
生年月日がセルB2にあると仮定すると、完全な数式は次のようになる。
=int((今日()-b2)/365))
前述のように、この年齢計算式は必ずしも完璧ではありません。 4年に一度の閏年は366日ですが、この計算式では日数を365で割っています。 つまり、2月29日に生まれた人が今日2月28日になると、この年齢計算式では1日年を取ってしまうことになるのです。
うるう年を迎えていない子供の年齢を計算する場合など、365ではなく365.25で割るのも非の打ちどころがない。
以上のことから、この年齢計算方法は通常の生活用として保存し、Excelで生年月日から年齢を計算する場合は、以下のいずれかの計算式を使用した方がよいでしょう。
DATEDIF( DOB , TODAY(), "y") ROUNDDOWN(YEARFRAC()) DOB , today(), 1), 0).上記の計算式の詳しい説明は、「エクセルで年齢を計算する方法」で行っています。 また、以下のスクリーンショットは、実際に年齢計算式が動作している様子を示しています。
=DATEDIF(B2, TODAY(), "y")
生年月日から正確な年齢を計算する(年、月、日単位)。
正確な年齢を年、月、日で計算するには、最後の引数に次の単位を指定して、3つのDATEDIF関数を書きます。
- Y - 完全な年数を計算するため。
- YM - 年は無視して、月の差を求める。
- MD - 年や月を無視して、日数の差を求めること。
そして、3つのDATEDIF関数を1つの数式に連結し、それぞれの関数が返す数値をカンマで区切って、それぞれの数値の意味を定義するのです。
生年月日がセルB2にあると仮定すると、完全な数式は次のようになる。
=DATEDIF(B2,TODAY(), "Y") & " 年, " & DATEDIF(B2,TODAY(), "YM") & " 月, " & DATEDIF(B2,TODAY(), "MD") & " 日数"
この年齢計算式は、例えば、医者が患者の正確な年齢を表示したり、人事担当者が全従業員の正確な年齢を把握するのに非常に便利である。
特定の日付や年における年齢の計算など、その他の計算式の例については、次のチュートリアルを参照してください:Excelで年齢を計算する方法。
年(1~365)の日数の求め方
この例では、1月1日を1日目として、1~365日(うるう年は1~366日)の間で、1年間のある日の数を求める方法を示しています。
そのためには、このようにYEAR関数とDATEを併用します。
=a2-date(年(a2), 1, 0)
ここで、A2は日付を含むセルである。
そして、この数式が実際にどのような働きをするのかを見てみましょう。 年 関数は、セル A2 にある日付の年を取得し、それを DATE(年、月、日) 関数で、ある日付を表す連番を返します。
だから、私たちの計算式では 年
は、元の日付から抽出される(A2)。 月
は1(1月)であり 日
は0です。実は、1月1日を1日目として扱いたいので、0日はExcelに強制的に前年の12月31日を返します。 そして、元の日付(Excelではこれも通し番号で保存されています)からDATE式で返された通し番号を引き、その差が探している年の日になります。 例えば、2015年1月5日は42009と保存されているので2014年12月31日は42004なので、42009-42004=5となります。
もし、0日目という概念がしっくりこない場合は、代わりに以下の式を使うこともできます。
=a2-date(年(a2), 1, 1)+1
1年の残り日数の計算方法
今年の残り日数を計算するために、再びDATE関数とYEAR関数を使用します。 この式は、上記の例3と同じ考え方に基づいているので、そのロジックを理解するのに苦労することはないでしょう。
=DATE(YEAR(A2),12,31)-A2
現在の日付を基準にして、年末まであと何日あるかを知りたい場合、次のようにExcelのTODAY()関数を使います。
=date(2015, 12, 31)-today()です。
ここで、2015年は現在の年です。
Excelでうるう年を計算する
ご存知のように、4年目のほぼすべての年は、2月29日が1日多く、うるう年と呼ばれます。 Microsoft Excelシートでは、ある日付がうるう年に属するか、それとも通年に属するかを、さまざまな方法で判断できます。 ここでは、私が考える最もわかりやすい公式をいくつか紹介しましょう。
式1.2月が29日であるかを確認する
これは非常にわかりやすいテストです。 うるう年の2月は29日なので、ある年の2月の日数を計算し、29番と比較します。 たとえば、以下のような感じです。
=DAY(DATE(2015,3,1)-1)=29
この式では、DATE(2015,3,1)関数が2015年の3月1日を返し、そこから1を引きます。 DAY関数がこの日付から日数を抽出し、その日数を29と比較します。 数値が一致すれば「真」を、それ以外は「偽」を返す式になっています。
Excelのワークシートにすでに日付のリストがあり、どれがうるう年なのか知りたい場合は、YEAR関数を数式に組み込んで、日付から年を抽出します。
=DAY(DATE(YEAR(A2),3,1)-1)=29
ここで、A2は日付を含むセルである。
数式で返される結果は以下の通りです。
また、EOMONTH関数を使って2月の最終日を返し、その数字と29を比較することもできます。
=day(eomonth(date(year(a2),2,1),0))=29
より使いやすくするために、IF関数を使用して、TRUEとFALSEの代わりに、例えば、「うるう年」と「平年」を返すようにします。
=IF(DAY(YEAR(A2),3,1)-1)=29, "うるう年", "平年")
=IF(DAY(EOMONTH(DATE(YEAR(A2),2,1),0))=29, "うるう年", "平年")
式2:1年が366日であるかどうかを確認する
DATE関数で来年の1月1日を返し、別のDATE関数で今年の1月1日を返して、後者を引いて、その差が366になるかどうかをチェックする、という説明不要のテストです。
=date(2016,1,1) - date(2015,1,1)=366
セルに入力された日付から年を計算するには、先ほどの例と全く同じようにExcelのYEAR関数を使用します。
=日付(年(a2)+1,1,1) - 日付(年(a2),1,1)=366
ここで、A2は日付を含むセルである。
そして当然ながら、上記のDATE / YEAR式をIF関数で囲むと、TRUEとFALSEというブール値よりも意味のある値を返すようになります。
=IF(DATE(YEAR(A2)+1,1,1) - DATE(YEAR(A2),1,1)=366, "うるう年", "非うるう年")
すでに述べたように、Excelでうるう年を計算する方法はこれだけではありません。 他の方法を知りたい場合は、Microsoftが提案する方法を確認してください。 いつものように、Microsoftの人たちは簡単な方法を探しているわけではないのですね?
この記事で、Excelでの年号計算を理解することができたでしょうか。 読んでいただき、ありがとうございました!来週もよろしくお願いします。