目次
このチュートリアルは、Excelの日付関数の概要と基本的な使い方を説明し、多くの計算式の例を提供するものです。
Microsoft Excelには、日付や時刻を操作するための関数が数多く用意されています。 それぞれの関数は簡単な操作を行いますが、1つの計算式の中で複数の関数を組み合わせることで、より複雑で難しい作業を解決することができます。
これまで12回にわたり、Excelの日付関数について詳しく説明してきましたが、最終回となる今回は、これまでの知識を整理し、日付計算に最適な関数を見つけられるよう、さまざまな計算式の例へのリンクを紹介します。
Excelで日付を計算するための主な関数です。
現在の日付と時刻を取得します。
- 日付に日数を足す・引く
- 1ヶ月の日数を計算する
エクセルTODAY機能
があります。 TODAY()
関数は、その名前が示すように、今日の日付を返します。
TODAYは、引数が全くないため、Excelの関数の中で最も使いやすい関数の一つであると言えます。 Excelで今日の日付を取得する必要があるときは、次の数式をセルに入力してください。
=TODAY()
このようなわかりやすい使い方以外にも、ExcelのTODAY関数は、今日の日付をもとにしたより複雑な数式や計算の一部になることがあります。 たとえば、現在の日付に7日間を加えるには、セルに次の数式を入力します。
=TODAY()+7
土日を除く平日30日を今日の日付に加算する場合は、こちらを使用します。
=workday(today(), 30)
注意:ExcelのTODAY関数が返す日付は、ワークシートが現在の日付を反映するように再計算されると、自動的に更新されます。
ExcelのTODAY関数の使い方を示すその他の計算式の例については、以下のチュートリアルをご覧ください。
- 今日の日付を挿入するExcel TODAY関数など
- 今日の日付をテキスト形式に変換する
- 今日の日付から平日を計算する
- 今日の日付から月の初日を検索する
エクセルNOW機能
NOW()
関数は、TODAYと同様、引数を持ちません。 ワークシートに今日の日付と現在時刻を表示したい場合は、次の数式をセルに入れるだけです。
=NOW()
注意:TODAYと同様に、Excel NOWはワークシートが再計算されるたびに返される値を更新する揮発性の関数です。 NOW()式のセルはリアルタイムで自動更新されず、ワークブックが再び開かれるかワークシートが再計算されたときにのみ更新されることに注意してください。 スプレッドシートが再計算されて、結果としてNOW式がその値を更新するように強制するには、次のいずれかのキーを押してください。Shift+F9でアクティブなワークシートのみを再計算し、F9で開いているすべてのワークブックを再計算します。
エクセルDATEVALUE関数
DATEVALUE(date_text)
は、テキスト形式の日付を、日付を表す通し番号に変換する。
DATEVALUE関数は、さまざまな日付形式や「テキストの日付」を含むセルへの参照を理解します。 DATEVALUEは、テキストとして保存された日付を計算、フィルター、ソートしたり、「テキストの日付」を日付形式に変換するのに大変便利な関数です。
以下、簡単なDATEVALUE式の例をいくつか紹介します。
=DATEVALUE("20-may-2015")
=DATEVALUE("5/20/2015")
=DATEVALUE("2015年5月20日")
また、以下の例では、DATEVALUE関数が実際の課題解決にどのように役立つかを示しています。
- 日付を数値に変換するDATEVALUE式
- テキスト文字列を日付に変換するDATEVALUE式
エクセルTEXT関数
TEXT関数は、日付に限らずあらゆる数値を文字列に変換できるため、純粋な意味でのExcelの日付関数には分類されない。
TEXT(value, format_text) 関数を使うと、次のスクリーンショットのように、日付を様々な形式のテキスト文字列に変更することができます。
注意:TEXT関数で返される値は、通常のExcelの日付のように見えるかもしれませんが、本質的にはテキスト値なので、他の数式や計算で使用することはできません。
以下は、参考になるであろうTEXT式の例です。
- ExcelのTEXT関数で日付をテキストに変換する
- 日付を月と年に変換する
- 日付から月名を抽出する
- 月番号から月名への変換
エクセルDAY機能
DAY(シリアルナンバー)
関数は,その月の日数を 1 から 31 までの整数で返します。
シリアル番号 は、取得しようとする日に対応する日付で、セル参照、DATE関数で入力した日付、他の数式で返された日付などがあります。
以下、数式の例を紹介する。
=DAY(A2)
- は、A2 の日付からその月の日数を返します。
=day(日付(2015,1,1))
- は2015年1月1日の日付けを返します。
=DAY(TODAY())
- 本日の日付を返します。
エクセルMONTH関数
MONTH(シリアルナンバー)
は、指定された日付の月を、1(1月)から12(12月)までの整数値で返します。
例えば、こんな感じです。
=MONTH(A2)
- 関数は、セル A2 にある日付の月を返します。
=月(今日())
- 関数は、現在の月を返します。
Excelの日付計算では、MONTH関数が単独で使われることはほとんどありません。 ほとんどの場合、次の例のように他の関数と組み合わせて使用します。
- Excelで日付に月を追加または減算する
- 2つの日付の間の月数を計算する
- 週番号から月番号を取得する
- Excelで日付から月番号を取得する
- 月の1日目を計算する
- 月を基準にした日付の条件付き書式設定
MONTH関数の構文の詳細と数式の例については、次のチュートリアルを参照してください:ExcelでMONTH関数を使用します。
エクセルYEAR関数
YEAR(シリアルナンバー)
YEAR関数は、指定された日付に対応する年を、1900から9999までの数字で返します。
ExcelのYEAR関数は非常にわかりやすく、日付の計算で使うときに困ることはほとんどないでしょう。
=YEAR(A2)
- YEAR関数は、セルA2内の日付の年を返します。
=YEAR("20-May-2015")です。
- 関数は、指定された日付の年を返します。
=YEAR(DATE(2015,5,20))
- は、より信頼性の高い方法で、ある日付の年を取得することができます。
=YEAR(TODAY())
- は、現在の年を返します。
YEAR機能の詳細については、こちらをご覧ください。
- Excel YEAR関数 - 構文と使い方
- Excelで日付を年に変換する方法
- Excelで日付までの年数を加算・減算する方法
- 2つの日付の間の年数を計算する
- 年(1~365日)の日付けの求め方
- 1年の残り日数の求め方
エクセルEOMONTH関数
EOMONTH(start_date,month)です。
関数は、開始日から指定された月数分の月の最終日を返します。
Excelの他の日付関数と同様に、EOMONTHは、セル参照で入力された日付、DATE関数で入力された日付、他の数式の結果を操作することができます。
A 正値 において つき
引数は、例えば、開始日に対応する月数を追加します。
=eomonth(a2, 3)
- は月の末日を3ヶ月間返します。 後 セル A2 の日付。
A 負の数 において つき 引数は、開始日から対応する月数を減算する。
=eomonth(a2, -3)
- は月の末日を3ヶ月間返します。 前 セル A2 の日付。
A ゼロ において つき 引数は、EOMONTH関数が開始日の月の最終日を返すように強制します。
=eomonth(date(2015,4,15), 0)
- は、2015年4月末日を返却日とします。
を取得するために じんじつ に、TODAY関数を入力します。 開始日 の引数で、0を指定します。 つき :
=eomonth(today(), 0)
EOMONTH式の例は、以下の記事でご紹介しています。
- 月の最終日の取得方法
- 月初日を取得する方法
- Excelでうるう年を計算する
エクセルWEEKDAY関数
WEEKDAY(シリアルナンバー,[return_type])
関数は、ある日付に対応する曜日を 1 (日曜日) から 7 (土曜日) までの数字で返します。
- シリアル番号 は、日付、日付を含むセルへの参照、または他のExcel関数によって返される日付であることができます。
- リターンタイプ (オプション) - 週のどの曜日を初日とするかを決定する数字です。
利用可能な戻り値のタイプの完全なリストは、次のチュートリアルで見ることができます:Excelの曜日関数。
そして、WEEKEND式の例をいくつか紹介します。
=WEEKDAY(A2)
- A2関数は、セルA2の日付に対応する曜日を返します。
=weekday(a2, 2)
- A2関数は、セルA2に入力された日付に対応する曜日を返します。
=weekday(today())
- は、今日の曜日に対応する数値を返します。
WEEKDAY関数は、Excelシートのどの日付が労働日で、どの日付が週末なのかを判断したり、労働日や週末をソート、フィルター、ハイライトしたりすることができます。
- 日付から曜日名を取得する方法
- 平日と休日の検索と絞り込み
- Excelで平日と週末を強調表示する
エクセルDATEDIF関数
DATEDIF(start_date, end_date, unit)
関数は、2つの日付の差を日、月、年単位で計算するために特別に設計されています。
日付差の計算にどの時間間隔を使うかは、最後の引数に入力した文字に依存します。
=DATEDIF(A2, TODAY(), "d")
- が計算されます。 日間 A2の日付と今日の日付の間。
=DATEDIF(A2, A5, "m")
- の数を返します。 全月 A2 と B2 の日付の間。
=DATEDIF(A2, A5, "y")
- の数を返します。 しゅうねん A2 と B2 の日付の間。
これらはDATEDIF関数の基本的な使い方であり、以下の例で示すように、それ以上のことが可能です。
- Excel DATEDIF関数 - 構文と使い方
- 2つの日付の間の日数を数える
- 日付と日付の間の週を計算する
- 2つの日付の間の月数を計算する
- 2つの日付の間の年数を計算する
- 日付の差は日、月、年
エクセルWEEKNUM関数
WEEKNUM(シリアル番号, [return_type])。
- BASE関数は、指定された日付の週番号を1〜53の整数値で返します。
例えば、以下の式は、1月1日を含む週がその年の第1週であることから、1を返します。
=WEEKNUM("1-Jan-2015")
次のチュートリアルでは、ExcelのWEEKNUM関数のすべての特異性を説明します:WEEKNUM関数 - Excelで週番号を計算する。
また、計算式の例題に直接飛ぶこともできます。
- 週番号で値を合計する方法
- 週番号を基準にセルを強調表示する方法
エクセルEDATE関数
EDATE(開始日, 月)
関数は、開始日から指定された月数前または後の日付の通し番号を返す。
例えば、こんな感じです。
=EDATE(A2, 5)
- は、セルA2の日付に5ヶ月を追加します。
=edate(today(), -5)
- は、今日の日付から5ヶ月を引きます。
EDATEの数式を数式例で説明した詳しい解説は、こちらをご覧ください。
EDATE関数で日付に月を足したり引いたりする。
エクセル YEARFRAC関数
YEARFRAC(start_date, end_date, [基準])
関数は、2つの日付の間にある年の割合を計算します。
この機能は、生年月日から年齢を計算するような実用的な課題解決に利用できる。
エクセルWORKDAY関数
WORKDAY(開始日, 日数, [休日])
は、開始日の前後 N 営業日の日付を返します。 また、週末や指定された休日を自動的に計算から除外します。
この機能は、標準的なワーキングカレンダーをもとに、節目などの重要なイベントを計算するのに非常に便利です。
例えば、次の数式は、セルA2の開始日に平日45日を追加し、セルB2:B8の休日を無視するものです。
=workday(a2, 45, b2:b85)
WORKDAYの構文の詳細な説明と、より多くの計算式の例については、以下をご覧ください。
WORKDAY関数 - Excelで勤務日を追加または減算する
Excel WORKDAY.INTL関数
WORKDAY.INTL(開始日、日数、[週末]、[休日])
は、Excel 2010 で導入された WORKDAY 関数をより強力にしたものです。
WORKDAY.INTLは、カスタム週末パラメータを使用して、将来または過去のN個の労働日数を計算することができます。
例えば、セルA2の開始日から20営業日後の日付を、月曜日と日曜日を週末としてカウントして取得するには、次のいずれかの数式を使用します。
=workday.intl(a2, 20, 2, 7)
または
=workday.intl(a2, 20, "1000001")
もちろん、これだけでは本質を捉えられないかもしれませんが、スクリーンショットを交えた計算式の例をもっと増やしていけば、とても分かりやすくなります。
WORKDAY.INTL - カスタムの週末を含む勤務日を計算します。
エクセル NETWORKDAYS関数
NETWORKDAYS(開始日, 終了日, [休日])
関数は、指定した2つの日付の間にある平日の数を返します。 週末の日や、オプションで休日を自動的に除外します。
例えば、以下の計算式は、セルC2:C5の土日を無視し、休日を除いて、A2の開始日とB2の終了日の間の全労働日数を計算するものです。
=ネットワークデー(a2,b2,c2:c5)
NETWORKDAYS関数の引数について、計算式の例やスクリーンショットを交えた総合的な説明は、次のチュートリアルをご覧ください。
NETWORKDAYS関数 - 2つの日付の間の勤務日を計算する
Excel NETWORKDAYS.INTL関数
NETWORKDAYS.INTL(start_date, end_date, [週末], [休日])
は、Excel 2010以降で利用できるNETWORKDAYS関数をより強力に改良したもので、2つの日付の間の平日数を返しますが、週末としてカウントする日を指定することができます。
ここでは、基本的なNETWORKDAYSの計算式を紹介します。
=networkdays(a2, b2, 2, c2:c5)
この数式は、A2 の日付(start_date)と B2 の日付(end_date)の間の勤務日数を、週末の日曜日と月曜日(週末パラメータの番号2)を除外し、セル C2:C5 の休日を無視して計算するものです。
NETWORKDAYS.INTL関数の詳細については、こちらをご覧ください。
NETWORKDAYS機能 - カスタム週末を含む勤務日のカウント
このページでは、Excelの日付関数の基本的な使い方を説明しました。 もっと詳しく知りたい方は、このページで紹介されている数式の例をチェックしてみてください。 それでは、また来週このブログでお会いしましょう。