Excelを使った業務で頻繁に日付の入力を求められる場合、その都度日付の入力を手入力で行うのは大きな手間となります。
そんな時に便利なのが、Excelの「TODAY関数」です。TODAY関数を用いることで、常に最新の日付を取得し、日付入力の手間を省略することができます。
この記事では、TODAY関数や関連する日付関数の使い方やその活用方法について紹介します。
チャット一括管理アプリ「OneChat」が今なら初月無料!!
OneChatのダウンロードはこちらから
Excelで瞬時に今日の日付を表示しよう
今日の日付をExcelに入力する場面は度々登場すると思いますが、その度にキーボードで毎回入力することは面倒です。
以下で、関数を用いて今日の日付を簡単に表示させることができる方法について紹介します。
TODAY関数の基本: 自動更新される日付表示
TODAY関数は、Excelにおいて現在の日付を取得するために用いられる関数です。
TODAY関数の書式は次の通りです。
=TODAY()
※TODAY関数の書式において、他の関数で用いられるような引数はありません。
TODAY関数による日付の取得のメリットは、日付が自動更新される点です。はじめにTODAY関数を入力した際に取得できる日付は、当然のことながら入力を行った現在の日付です。ですが、TODAY関数が入力されているExcelファイルを別の日に開くと、TODAY関数を入力した日付ではなく、開いた日付(最新の日付)が表示されます。
TODAY関数が最新の日付に更新されるのは以下のような場合です。
- Excelファイルを開いた場合
- 「F9」キーを押した場合
- 印刷を行った場合
NOW関数で時刻も含む現在の情報を入手
TODAY関数では、最新の日付を自動で表示させることができますが、日付だけでなく自国も含めた現在の情報を取得したい場合は、NOW関数を用いましょう。
NOW関数の書式は次の通りです。
=NOW()
※NOW関数も、TODAY関数と同様に書式内に他の関数で用いられるような引数はありません。
NOW関数の使用例
数式 | 解説 | 結果 |
=NOW() | 現在の日付と時刻を表示する | 4/1/2024 0:00 |
=NOW()-0.5 | 0.5日前(12時間前)の日付と時刻を表示する | 3/31/2024 12:00 |
=NOW()+7 | 7日後の日付と時刻を表示する | 4/8/2024 0:00 |
=NOW()-2.25 | 2.25日前(2日と6時間前)の日付と時刻を表示する | 3/30/2024 18:00 |
(数値の部分は任意で変更可能)
日付表示のカスタマイズ: 便利な書式設定方法
日付表示を好みの形式へとカスタマイズする方法について紹介します。
セルの書式設定で日付の表示形式を変更
セルの書式設定をカスタマイズすることにより日付の表示形式を好みの形へ変更することができます。ここでは、2種類のセルの書式設定による日付の表示形式変更方法とその手順について解説します。
あらかじめ用意されている日付の表示形式から選択する
Excelにあらかじめ用意されている日付の表示形式から選択する手順は次の通りです。
- 表示形式を変更するセルを選択する
- 「Ctrl」キーを押しながら「1」を押す
- 「セルの書式設定」ボックス内の「表示形式」タブを選択する
- 「分類」に表示されている一覧から、「日付」を選択する
- 「種類」に表示されている一覧から、日付の表示形式が希望のものと一致するものを選択する
- 「OK」を押す
日付の表示形式をユーザー定義により変更する
Excelにあらかじめ用意されている日付の表示形式にはない形式を適用したい場合は、独自に形式を設定することができます。独自に設定した表示形式の適用方法の手順は次の通りです。
- 表示形式を変更するセルを選択する
- 「Ctrl」キーを押しながら「1」を押す
- 「セルの書式設定」ボックス内の「表示形式」タブを選択する
- 「分類」に表示されている一覧から、「日付」を選択する
- 「種類」に表示されている一覧から、目的の日付の表示形式を選択する(この形式は、次の手順で変更することが可能)
- 「分類」のリストに戻り、「カスタム」を選択する(「種類」には、一つ前の手順で選択した表示形式で表示される)
- 「種類」ボックスで、以下の表のコードを用いて希望の表示形式へ設定する
- 「OK」を押す
表示結果 | 使用コード |
00 ~ 99 (年の下二桁表示) | yy |
1900 ~ 9999 (年) | yyyy |
1 ~ 12 (月) | m |
01 ~ 12 (月の二桁表示) | mm |
Jan ~ Dec (月の頭三桁表示) | mmm |
January ~ December (月の英語表示) | mmmm |
J ~ D (月名の頭文字) | mmmmm |
1 ~ 31 (日) | d |
01 ~ 31 (日の二桁表示) | dd |
Sun ~ Sat (曜日の頭三桁表示) | ddd |
Sunday ~ Saturday (曜日) | dddd |
参考:日付をお好みの形式に設定する – Microsoft サポート
特定の条件下で日付表示を自動変換する方法
TODAY関数を用いて、特定の条件下で日付表示を自動変換する方法について見ていきましょう。
数式 | 解説 | 結果 |
=TODAY() | 現在の日付を表示する | 2024/4/1 |
=TODAY()+7 | 現在の日付から7日後の日付を表示する | 2024/4/8 |
=DATEVALUE(“2030/6/2”)-TODAY() | 現在の日付と指定した日付(2030/6/2)との間の日数を表示します。ただし、正しい結果を表示するためには、表示形式を「標準」または、「数値」と設定しておく必要があります。 | 1906/01/20 |
=DAY(TODAY()) | 現在の日付を(日)のみで表示する | 1 |
=MONTH(TODAY()) | 現在の日付を(月)のみで表示する | 4 |
(数値の部分は任意で変更可能)
実用的な日付関数の使い方をマスターする
ここまでで、日付表示に関係する関数の基本的な情報について理解が深められたと思います。ここからは、実用的な日付関数の使い方について見ていきましょう。
期間内の日数を計算するにはDATEDIF関数を利用
特定の日付から特定の日付までの日数を計算する際に便利な関数がDATEDIF関数です。
DATEDIF関数では、2種類の日付のシリアル値を用いることで、その期間内の「年数」や「月数」、「日数」などを計算することができます。
DATEDIF関数の書式は次の通りです。
=DATEDIF(開始日, 終了日, 単位)
項目 | 内容 |
開始日 | 日数の計算を行う起点となる日付を指定します。日付の入力は、クォーテーションマーク(”)で日付を囲んでテキスト文字列として入力します。または、シリアル番号(1900年1月30日の場合は36921など)によっても指定することが可能です。 |
終了日 | 日数の計算を行う終点となる日付を指定します。日付の入力方法は、開始日と同様の方法で可能です。 |
単位 | 計算した数をどのような単位で返すかを指定します。単位の指定は、以下の種類より選択することができます。 |
単位 | 内容 |
Y | 計算した期間の満年数が返されます。 |
M | 計算した期間の満月数が返されます。 |
D | 計算した期間の日数が返されます。 |
MD | 開始日から終了日までの日数が返されます。日付の月数や年数は無視されます。ただし、制限事項があるため、この単位の指定はおすすめではありません。詳しくは、下記参考リンクページ内の「既知の問題」の欄を参照してください。 |
YM | 開始日から終了日までの月数が返されます。日付の日数や年数は無視されます。 |
YD | 開始日から終了日までの日数が返されます。日付の年数は無視されます。 |
DATEDIF関数の使用例
開始日 | 終了日 | 数式 | 結果(説明) |
2020/01/01 | 2024/01/01 | =DATEDIF(“2020/01/01″,”2024/01/01″,”Y”) | 4(期間内の年数) |
2020/01/01 | 2021/10/15 | =DATEDIF(“2020/01/01″,”2021/10/15″,”D”) | 653(2020/01/01 から 2021/10/15 までの日数) |
2020/01/01 | 2021/10/15 | =DATEDIF(“2020/01/01″,”2021/10/15″,”YD”) | 288(日付の年数を無視した、1/1 から 10/15 までの日数) |
参考:DATEDIF 関数 – Microsoft サポート
曜日を求める場合のWEEKDAY関数の活用法
特定の日付に対応した曜日を求める際に便利な関数がWEEKDAY関数です。WEEKDAY関数では、指定した日付の曜日に対応する「数字」を表示させることができます。既定では、日曜日を起点に土曜日までの曜日を、「1」〜「7」までの範囲の整数となります。
WEEKDAY関数の書式は次の通りです。
=WEEKDAY(シリアル値,[週の基準])
項目 | 内容 |
シリアル値 | 検索する対象となる日付のシリアル値を指定します。日付の入力方法は、DATE関数を用いて行うか、他の数式、または他の関数の結果を用います。 DATE関数を用いて2024年4月1日の入力を行う場合は、「DATE(2023, 4,1)」となります。文字列として日付の入力を行った場合、エラーが返される場合があるので注意しましょう。 |
週の基準 | 曜日に対応する戻り値の整数の値の指定を行います。 |
週の基準 | 戻り値 |
既定(1) | 日曜日を起点に土曜日までの曜日を、1 〜 7 の順の整数で返します。 古いバージョンのExcelのように動作します。 |
2 | 月曜日を起点に日曜日までの曜日を、1 〜 7 の順の整数で返します。 |
3 | 月曜日を起点に日曜日までの曜日を、0 〜 6 の順の整数で返します。 |
11 | 月曜日を起点に日曜日までの曜日を、1 〜 7 の順の整数で返します。 |
12 | 火曜日を起点に月曜日までの曜日を、1 〜 7 の順の整数で返します。 |
13 | 水曜日を起点に火曜日までの曜日を、1 〜 7 の順の整数で返します。 |
14 | 木曜日を起点に水曜日までの曜日を、1 〜 7 の順の整数で返します。 |
15 | 金曜日を起点に木曜日までの曜日を、1 〜 7 の順の整数で返します。 |
16 | 土曜日を起点に金曜日までの曜日を、1 〜 7 の順の整数で返します。 |
17 | 日曜日を起点に土曜日までの曜日を、1 〜 7 の順の整数で返します。 |
WEEKDAY関数の使用例
下記「A1」セルに入力されている日付を基準として、WEEKDAY関数の使用例について見ていきましょう。
行\列 | A |
1 | 2024/4/1 |
数式 | 解説 | 結果 |
=WEEKDAY(A1) | 日曜日を起点に土曜日までの曜日を、1 〜 7 の順の整数で表示します。 | 2 |
=WEEKDAY(A1, 2) | 月曜日を起点に日曜日までの曜日を、1 〜 7 の順の整数で表示します。 | 1 |
=WEEKDAY(A1, 3) | 月曜日を起点に日曜日までの曜日を、0 〜 6 の順の整数で表示します。 | 0 |
参考:WEEKDAY 関数 – Microsoft サポート
Excelで日付データの管理と検索を効率化
Excelの日付関数を活用して、日付データの管理と検索を効率化する方法について見ていきましょう。
セル内の日付データをソート・フィルタリングする方法
セル内の日付データのソート・フィルタリングを行う場合、日付関数を用いることで補助列を作成する方法があります。
具体的な方法としては、ソートやフィルタリングをしたい日付のデータが入力されているデータの隣の列に、日付関数を用いて日付データを取り出す補助列の作成を行います。それを基準としてソートやフィルタリングを実行します。
例えば、以下のデータをもとにして、日付データのソート・フィルタリングの手順を解説します。
行\列 | A | B | C |
1 | 受注日 | 受注番号 | 取引額 |
2 | 2023/4/16 | A-11 | 120,000 |
3 | 2023/4/23 | A-12 | 210,000 |
4 | 2023/5/11 | B-21 | 510,000 |
5 | 2023/6/19 | A-13 | 260,000 |
6 | 2023/6/29 | B-22 | 620,000 |
7 | 2023/7/4 | A-14 | 180,000 |
8 | 2023/7/26 | A-15 | 310,000 |
9 | 2023/7/28 | A-16 | 190,000 |
10 | 2023/8/5 | B-23 | 580,000 |
11 | 2023/8/14 | B-24 | 550,000 |
ソート
- 日付の入力されている列の隣に新しい列を挿入する
- 挿入した列(B列)に日付データを取り出すための日付関数を入力する
例えば、「月」を指定してソートしたい場合は「=MONTH(A5)」と入力する - 最後に、日付関数の結果をもとに、データのソートを行う
フィルタリング
- ソートの手順と同様に、日付の入力されている列の隣に新しい列を挿入する
- 挿入した列(B列)に日付データを取り出すための日付関数を入力する
- フィルタリングを行う列のヘッダーをクリックし、「フィルタ」を有効にする
- フィルタリングのアイコンをクリックし、フィルタリングの条件を選択する
この際、挿入した補助列の条件を基準としてフィルタリングします
条件に合う日付データを検索・抽出する使い方
条件に合う日付データを検索・抽出する場合は、「FILTER関数」と「DATEVALUE関数」や「DATE関数」を組み合わせて用いることにより行うことができます。
関数名 | 概要 |
FILTER関数 | 指定した条件に基づき、範囲内のセルから条件に一致したデータをフィルタリングして取得することのできる関数です。 |
DATEVALUE関数 | 文字列として格納されている日付を、Excelが日付として認識可能なシリアル値へと変換する関数です。 |
DATE関数 | 指定した3つの独立した値を組み合わせて日付のシリアル値を求めることができる関数です。 |
FILTER関数の書式は次の通りです。
=FILTER(配列, 含む, [空の場合])
項目 | 内容 |
配列 | フィルタリングを行う対象となる配列や範囲の指定をします。 |
含む | フィルタリングを行う条件の指定をします。 |
空の場合 | 指定の条件に一致するデータが存在しない場合に、エラー値の代わりに返す値の指定をします。省略するとエラー値となるため、空白の表示となるように「””」を指定すると良いでしょう。 |
DATEVALUE関数の書式は次の通りです。
=DATEVALUE(日付文字列)
項目 | 内容 |
日付文字列 | Excelの日付形式における日付を表すテキストや、日付を表すテキストを含んだセルの参照により指定します。この引数で指定した日付で「年」が省略されている場合、コンピュータのシステム時計をもとにした現在の年を用います。時刻が指定した内容に含まれている場合は無視されます。 |
参考:DATEVALUE 関数 – Microsoft サポート
DATE関数の書式は次の通りです。
=DATE(年, 月, 日)
項目 | 内容 |
年 | 年の値を指定します。1 〜 4桁の範囲内の数字で指定することは可能ですが、不適切な結果となることを避けるためにも、4桁の年を使用しましょう。 年の値を0 〜 1899の範囲で指定した場合は、1900を足した値が返されます。負の値や10000以上で指定した場合は、エラー値(#NUM!)が返されます。 |
月 | 月の値を指定します。指定は正または負の整数で行います。 12より大きい数値でも指定することはできますが、その場合は第一引数で指定した年の最初の月に、第二引数を足した月が返されます。例えば、=DATE(2023, 16, 20)とした場合は、2024/4/20を表すシリアル値が返されます。1より小さい数値を指定した場合は、第一引数で指定した年の最初の月から、第二引数の絶対値に1を足した月数を引いた月が返されます。例えば、=DATE(2023, -5, 20)とした場合は、2022/7/20を表すシリアル値が返されます。 |
日 | 日の値を指定します。指定は正または負の整数で行います。 指定した月の最終日より指定した日の値が大きい場合は、第二引数で指定した月の最初の日に第三引数を足した日が返されます。例えば、=DATE(2023, 4, 40)とした場合は、2023/5/10を表すシリアル値が返されます。1より小さい数値を指定した場合は、第二引数で指定した月の最初の日から、第三引数の絶対値に1を足した日数を引いた日が返されます。例えば、=DATE(2024, 4, -20)とした場合は、2024/3/11を表すシリアル値が返されます。 |
それぞれの関数の概要について理解できたところで、これらの関数を組み合わせて実際にデータの検索・抽出について見ていきましょう。
行\列 | A | B | C |
1 | 受注日 | 受注番号 | 取引額 |
2 | 2023/4/16 | A-11 | 120,000 |
3 | 2023/4/23 | A-12 | 210,000 |
4 | 2023/5/11 | B-21 | 510,000 |
5 | 2023/6/19 | A-13 | 260,000 |
6 | 2023/6/29 | B-22 | 620,000 |
7 | 2023/7/4 | A-14 | 180,000 |
8 | 2023/7/26 | A-15 | 310,000 |
9 | 2023/7/28 | A-16 | 190,000 |
10 | 2023/8/5 | B-23 | 580,000 |
11 | 2023/8/14 | B-24 | 550,000 |
上記データから、「FILTER関数」に「DATEVALUE関数」と「DATE関数」をそれぞれ組み合わせて、「受注日」が「2023年7月15日以降」の「取引額」を抽出してみましょう。
1.抽出結果を表示したいセルを選択する
データが入力済みのセルに抽出結果を上書きして表示することができないので注意しましょう。
2.FILTER関数を入力する
選択したセルにFILTER関数を入力します。第一引数は、抽出したい項目である「取引額」の列、第二引数は「受注日」の列を選びます。
=FILTER(C:C, A:A
第一引数をデータ全体(上記表の場合は「A2:C11」)とすると、条件を満たした「受注日」「受注番号」「取引額」がまとめて抽出できます。
3.DATEVALUE関数、またはDATE関数を入力する
FILTER関数の第二引数にDATEVALUE関数、またはDATE関数を入力します。先に入力した「A:A」に続けてそれぞれの関数の値を入れましょう。
今回は、指定した日付以降のデータを抽出するため、それぞれの関数の前に「>=」を入力します。
=FILTER(C:C, A:A>=DATEVALUE(“2023/7/15”))
=FILTER(C:C, A:A>=DATE(2023, 7, 15))
行\列 | E |
1 | 取引額 |
2 | 310,000 |
3 | 190,000 |
4 | 580,000 |
5 | 550,000 |
日付関数を活用したビジネスシーン事例
日付関数をビジネスシーンで活用した事例について紹介します。
売上日報の自動作成: TODAY関数で日付入力の手間を省く
日々の売上日報を作成する際に入力する日付にTODAY関数を用いることにより日付入力の手間を省略することができます。
TODAY関数を活用して売上日報の作成を行う場合の方法について、その手順の一例を解説します。
- 日報作成用のシートを用意します。ここには、「日付」・「商品名」・「売上」など日報に記録する内容を項目ごとの列で準備しましょう。
- 作成した日報制作用シート内の日付の列に「=TODAY()」を入力し、セルに日付データを自動入力します。
- 売上データが入力されている別シートより売上データを取得し、日付が今日の日付と一致する行のみを日報作成用のシートにコピーします。この際、「IF関数」や「FILTER関数」を用いて今日の日付と一致するデータを抽出すると簡単に行うことができます。
- 「商品名」「売上」の列を日報作成用のシートにコピーします。
人事管理での勤続年数計算: DATEDIF関数で効率化
人事管理での勤続年数計算をDATEDIF関数を活用することで効率的に行うことが可能です。
DATEDIF関数を活用した勤続年数計算方法についての一例を解説しましょう。
行\列 | A | B | C |
1 | 氏名 | 入社日 | 勤続年数 |
2 | 田中健太郎 | 1995年10月1日 | |
3 | 山田美紀 | 2000年4月1日 | |
4 | 鈴木大輔 | 2010年10月1日 | |
5 | 佐藤さちこ | 2015年10月1日 | |
6 | 高橋太郎 | 2022年4月1日 |
例えば、上記表のようにB列に入社日が入力されている際に、現在の日付から勤続年数を求める手順は以下のようなものとなります。
1.開始日を指定する
DATEIF関数の1つ目の引数である開始日を指定します。この場合の開始日は入社日と等しいため、「B2」セルを指定します。
=DATEDIF(B2,
2.終了日を指定する
2つ目の引数である終了日を指定します。この場合の終了日は現在の日付であるため、それを入力しましょう。その際、TODAY関数を用いることで、シートを開いたタイミングでの勤続年数へと自動更新することができます。
=DATEDIF(B2, TODAY(),
3.単位を指定する
3つ目の引数である単位を指定します。勤続年数を求めるので、単位は年(Y)を選択します。
=DATEDIF(B2, TODAY(), “Y”)
4.入力した関数をコピーする
最後に、入力した関数を「C2」以降のセルにコピーしましょう。
行\列 | A | B | C |
1 | 氏名 | 入社日 | 勤続年数 |
2 | 田中健太郎 | 1995年10月1日 | 28 |
3 | 山田美紀 | 2000年4月1日 | 24 |
4 | 鈴木大輔 | 2010年10月1日 | 13 |
5 | 佐藤さちこ | 2015年10月1日 | 8 |
6 | 高橋太郎 | 2022年4月1日 | 2 |
よくある質問
Excelの日付関数に関連するよくある質問について紹介します。
エクセルで今日を表す関数は?
エクセルで今日を表示させることのできる関数は「TODAY関数」です。
TODAY関数は、エクセルにおける現在の日付を取得することができます。
TODAY関数の書式は次の通りです。
=TODAY()
※TODAY関数の書式において、他の関数で用いられるような引数はありません。
TODAY関数による日付の取得のメリットは、日付が自動更新される点です。はじめにTODAY関数を入力した際に取得できる日付は、当然のことながら入力を行った現在の日付です。ですが、TODAY関数が入力されているExcelファイルを別の日に開くと、TODAY関数を入力した日付ではなく、開いた日付(最新の日付)が表示されます。
ExcelのToday()関数の引数は?
Excelにおける「TODAY関数」には、他の多くの関数で用いられるような引数は存在しません。
そのため、どのような場合においても、TODAY関数の書式である「=TODAY()」を入力したセルに現在の日付を表示させることができます。
まとめ
今回は、TODAY関数や関連する日付関数の使い方やその活用方法について紹介しました。
Excelを使った業務で頻繁に日付の入力を求められる場合、その都度日付の入力を手入力で行うのは大きな手間となります。
そのような時は、今回紹介した日付関数を用いて、業務の効率化を図ってみてはいかがでしょうか。
Excel今日の日付関数に関する重要用語
用語 | 説明 |
動的データ | Excelにおける動的データとは、セル内に入力されている情報が変化を伴う可能性があるデータのことをいいます。通常、動的データは式や関数を用いて計算が行われるデータであり、セルの値や内容が変更されると、それに伴って自動的に更新されます。 |
静的データ | Excelにおける静的データとは、セル内に入力されている情報が変化を伴わない、つまり固定されているデータのことをいいます。通常、静的データはユーザーが手動で入力したテキストや値で構成されていて、セルの内容が変更された場合も値は変動しません。 |