エクセル関数超技
エクセルの日付と時刻のまとめ

Excel関数の解説、関数サンプルと高等テクニック
最終更新日:2019-03-06

エクセルの日付と時刻のまとめ


エクセル 日付 まとめ VBA

エクセルに入力するデータとしては、数値、文字、日付時刻などがありますが、日付時刻はかなり特殊なものとなっています。
日付時刻の扱いは独特であり、
エクセルのワークシートだけでなくマクロVBAでも他のプログラミング言語でも扱いが面倒なものです、
ここでは日付時刻についての関数や応用方法についてまとめています。


日付時刻の基本ワークシート関数

日付時刻のシリアル値
エクセルの日付時刻はシリアル値と呼ばれる数値で管理されています。日付時刻のシリアル値は1900/1/1を基準にした数値です。1900/1/1が1です。つまり1900/1/3は3です。シリアル値→日付 10000→1927/5/18 20000→1954/10/3 30000→1982/2/18 40000→ 2009/7/6 41000→2012/4/1…

DATE関数(年,月,日を日付に)
引数の年,月,日を日付を表すシリアル値に変換します。セルにDATE関数を入力すると、セルの表示形式は自動的に日付形式に設定されます。書式 DATE(年,月,日) 年 1~4桁で年を指定します。月 月を表す正または負の整数を指定します。

DATEVALUE関数(日付を表す文字列を日付に)
文字列として格納された日付を、Excelで日付として認識できるシリアル値に変換します。書式 DATEVALUE(日付文字列) 日付文字列 日付を表す文字列を指定します。Excelの組み込みの日付表示形式での日付を表す文字列です。

YEAR関数(日付を年に)
日付に対応する年を返します。引数に指定した日付の西暦年を、1900(年)~9999(年)の範囲の整数で返します。書式 YEAR(シリアル値) シリアル値 日付の入っているセル参照または、DATE関数等を指定します。


MONTH関数(日付を月に)
日付に対応する月を返します。1(月)~12(月)の範囲の整数です。書式 YEAR(シリアル値) シリアル値 検索する月の日付を指定します。日付の入っているセル参照またはDATE関数等を指定します。使用例 セルA1に2013/5/15と入っている場合 =MONTH(A1)…5 応用例 1年後の日付

DAY関数(日付を日に)
日付に対応する日を返します。1~31の範囲の整数です。書式 YEAR(シリアル値) シリアル値 検索する日の日付を指定します。日付の入っているセル参照またはDATE関数等を指定します。使用例 セルA1に2013/5/15と入っている場合 =DAY(A1)…14 応用例 1年後の日付○か月後の日付 ※ワークシート関数一覧Excelワークシート関数の一覧と解…

TIME関数(時,分,秒を時刻に)
引数の時,分,秒を時刻を表すシリアル値に変換します。セルにTIME関数を入力すると、セルの表示形式は自動的に時刻形式に設定されます。書式 TIME(時,分,秒) 時 時を表す数値を0~32767の範囲で指定します。

TIMEVALUE関数(時刻を表す文字列を時刻に)
文字列として格納された時刻を、Excelで時刻として認識できるシリアル値に変換します。書式 TIMEVALUE(時刻文字列) 時刻文字列 時刻を表す文字列を指定します。Excelの組み込みの時刻表示形式での時刻を表す文字列です。

HOUR関数(時刻を時に)
時刻に対応する時を返します。0(時)~23(時)の範囲の整数です。書式 HOUR(シリアル値) シリアル値 時刻を指定します。時刻の入っているセル参照または、TIME関数等を指定します。使用例 セルA1に10:20:30と入っている場合 =HOUR(A1)…10 ※ワークシート関数一覧

MINUTE関数(時刻を分に)
時刻に対応する分を返します。0(分)~59(分)の範囲の整数です。書式 MINUTE(シリアル値) シリアル値 時刻を指定します。時刻の入っているセル参照または、TIME関数等を指定します。使用例 セルA1に10:20:30と入っている場合 =MINUTE(A1)…20 ※ワークシート関数一覧

SECOND関数(時刻を秒に)
時刻に対応する秒を返します。0(秒)~59(秒)の範囲の整数です。書式 SECOND(シリアル値) シリアル値 時刻を指定します。時刻の入っているセル参照または、TIME関数等を指定します。使用例 セルA1に10:20:30と入っている場合 =SECOND(A1)…30 ※ワークシート関数一覧

TODAY関数(現在の日付)
現在の日付に対応する値を返します。セルにTODAY関数を入力すると、セルの表示形式は自動的に日付形式に設定されます。書式 TODAY() ※引数はありません。TODAY関数は、エクセルで再計算が行われない限り、関数を入力した日付のままになります。

NOW関数(現在の日付と時刻)
現在の日付と時刻に対応するシリアル値を返します。セルにNOW関数を入力すると、セルの表示形式は自動的に時刻形式に設定されます。書式 NOW() ※引数はありません。NOW関数は、エクセルで再計算が行われない限り、関数を入力した日付時刻のままになります。

WORKDAY関数(稼動日数だけ前後の日付)
開始日から起算して、指定された稼動日数だけ前または後の日付に対応する値を返します。稼動日とは、土曜、日曜、および指定された祭日を除く日のことです。書式 WORKDAY(開始日,日数,[祭日]) 開始日 必須です。

NETWORKDAYS関数(稼動日の日数)
開始日から終了日までの期間に含まれる稼動日の日数を返します。稼動日とは、土曜、日曜、および指定された祭日を除く日のことです。書式 NETWORKDAYS(開始日,終了日,[祭日]) 開始日 必ず指定します。

DATEDIF関数(年齢・勤続年数)
2つの日付の間の日数、月数、または年数を計算します。この関数は、Lotus1-2-3との互換性を提供するために用意されています。この関数は、関数ウイザード(数式パレット)が用意されていませんので、全て手入力する必要があります。

EDATE関数(月数だけ前後の日付)
開始日から指定された月数だけ、前または後の月の応当日を返します 書式 EDATE(開始日,月) 開始日 起算日を表す日付を指定します。月 開始日から起算した月数を指定します。月に正の数を指定すると、起算日より後の日付を返し、負の数を指定すると、起算日より前の日付を返します。


EOMONTH関数(月数だけ前後の月の最終日)
開始日から指定された月数だけ前または後の月の最終日を返します。書式 EOMONTH(開始日,月) 開始日 起算日を表す日付を指定します。月 開始日から起算したい月数を指定します。正の数を指定すると、起算日より後の日付を返し、負の数を指定すると、起算日より前の日付を返します。

WEEKDAY関数(曜日に変換)
日付に対応する曜日を返します。既定では、戻り値は1(日曜)から7(土曜)までの範囲の整数となります。書式 WEEKDAY(シリアル値,[種類]) シリアル値 曜日を求める日付を指定します。種類 省略すると1になります。

WEEKNUM関数(その年の何週目)
日付がその年の第何週目に当たるかを返します。書式 WEEKNUM(シリアル値,[週の基準]) シリアル値 日付を指定します。日付は、DATE関数を使って入力するか、他の数式または他の関数の結果を指定します。

日付時刻の表示形式・入力規則

表示形式.日付
日付は多くの指定書式がありいろいろな表示形式を指定できます。設定するセルを選択 Ctrl+1または右クリックから「セルの書式設定」表示形式(一番左のタブ) 分類から「ユーザー定義」を選択 「種類」のすぐ下のボックスに 以下のいずれかを入力し「OK」記号の意味 書式記号 表示結果 yy 00~99(西暦の年) yyyy 1900~9999(西暦の年) e …

表示形式.24時間を超える時間
Excelの標準では時刻は24以上は表示されませんこれを表示する方法です。設定するセルを選択 Ctrl+1または右クリックから「セルの書式設定」表示形式(一番左のタブ) 分類から「ユーザー定義」を選択 「種類」のすぐ下のボックスに [h]:mm と入力し「OK」エクセルの標準では時刻・時間を入力すると

日付表示の桁位置を揃える
日付表示で月日が1桁の時に、/スラッシュの位置を揃える表示形式の指定方法です。12/19 12/8 この場合の、表示位置を揃えるというものです。そのサイトの案内では、m/dこれをm/""d このようにすれば良いと書いてありました。

入力規則.日付・時刻
日付または時刻のみ入力出来るようにセルに入力規則を設定します。設定するセルを選択 データ データの入力規則 設定タブ 入力値の種類のドロップダウンで・日付 または ・時刻 データのドロップダウンで・次の値の間 ・次の値の間以外 ・次の値に等しい ・次の値に等しくない ・次の値より大きい ・次の値より小さい ・次の値以上 ・次の値以下 この中から選択 最小値


日付時刻の応用

エクセルの日付のお話
エクセルでの日付の扱いは特別です。では、エクセルでの日付についてのお話です。エクセルでの日付は1900/1/1を1として、そこからの日数になっています。通常、私もこのように説明するのですが、実は、ちょっとからくりがあります。

日付、時刻に関するあれこれ「元年」表記追加)
1.曜日の表示方法 2.数値を日付にする方法 3.24時以降(26時等)の表示書式 4.日付と日付の間隔(年齢等)の求め方DATEDIFに関して 5.日付時刻のシリアル値(数値) 6.和暦表示について「元年」表記」1.曜日の表示方法 曜日の書式に関しては「セルの書式設定」にサンプルが出ていない為

1年後の日付、○か月後の日付
起算日からの一年間の最後の日の求め方です起算日が2011/4/1なら2012/3/31の求め方です。セルA1に起算日が入っておりセルA2に一年間の最終日を設定する場合。一年後の日付 よくみかけるのは=DATE(YEAR(A1)+1,MONTH(A1),DAY(A1))-1 DATEはDATE(年,

数値を時刻に変換
数値(例えば930)を、時刻・時間(9:30)に変換する方法です ・900→9:00 ・1230→12:30 このように、単なる数値を時刻・時間に変換します。以下、A1セルに数値が入っているとします。数値を時刻に変換:方法1 TIME関数を使います。

時間計算で困ったときの確実な対処方法
Excelで非常に多い質問の一つが時間計算です日付・時刻はエクセルのデータ形式の一つですが特に時間計算は面倒で対処方法も書籍・ネットでもあまりみかけません。日付に関しては便利な関数も用意されていますしなにより1日が数値の1(これをシリアル値と言います)で表されているので大抵はなんとかなっているようです。

マクロVBAでの日付時刻

日付時刻のVBA関数
Date関数
Date関数は、現在のシステムの日付を返します、バリアント型(内部処理形式DateのVariant)の値を返します。Date関数 Date 現在の日付を設定するには、Dateステートメントを使います。使用例. MsgBoxDate…2013/06/09システムの日付が表示されます。
DateAdd関数
DateAdd関数は、指定された時間間隔を加算した日付を返します、バリアント型(内部処理形式StringのVariant)で返します。DateAdd関数 DateAdd(interval,number,date) interval 必ず指定します。
DateDiff関数
DateDiff関数は2つの指定した日付の時間間隔を表す値を返します。ワークシート関数のDATEDIF関数とはスペルも引数も違いますさらに年の計算は違ったものとなっていますので注意してください。DateDiff関数 DateDiff(interval,date1,date2[,firstdayofweek[,
DatePart関数
DatePart関数は日付の指定した部分の値を返しますバリアント型(内部処理形式DateのVariant)の値を返します。DatePart関数 DatePart(interval,date[,firstdayofweek[,firstweekofyear]]) interval 必ず指定します。
DateSerial関数
DateSerial関数は、引数に指定した年、月、日に対応する日付を返す関数です、バリアント型(内部処理形式DateのVariant)の値を返します。DateSerial関数 DateSerial(year,month,day) year 必ず指定します。
DateValue関数
DateValue関数は日付を表す文字列式を日付に変換しますバリアント型(内部処理形式DateのVariant)の値を返します。DateValue関数 DateValue(date) date は必ず指定します。引数dateには通常100年1月1日から9999年12月31日までの範囲の日付を表す文字列式を指定します。
Day関数
Day関数は日付から何日かを表す日の値を返しますバリアント型(内部処理形式IntegerのVariant)の値を返します。Day関数 Day(date) date 必ず指定します。引数dateには日付を表すバリアント型(Variant)の値数式文字列式またはこれらを組み合わせた値を指定します。
Hour関数
Hour関数は時刻から時の整数を返しますバリアント型(内部処理形式DateのVariant)の値を返します。Hour関数 Hour(time) time 必ず指定します。引数timeには時刻を表す任意のバリアント型(Variant)の値数式文字列式またはこれらを組み合わせた値を指定します。
Minute関数
Minute関数は時刻から分の整数を返しますバリアント型(内部処理形式DateのVariant)の値を返します。Minute関数 Minute(time) time 必ず指定します。引数timeには時刻を表す任意のバリアント型(Variant)の値数式文字列式またはこれらを組み合わせた値を指定します。
Month関数
Month関数は日付から何月かを表す月の値を返しますバリアント型(内部処理形式IntegerのVariant)の値を返します。Month関数 Month(date) date 必ず指定します。引数dateには日付を表すバリアント型(Variant)の値数式文字列式またはこれらを組み合わせた値を指定します。
MonthName関数
MonthName関数は、指定された月を表す文字列を返します。MonthName関数 MonthName(month[,abbreviate]) month 必ず指定します。月を示す数値を指定します。
Now関数
Now関数は、コンピュータのシステムの日付と時刻の設定に基づいて、現在の日付と時刻を返します、バリアント型(内部処理形式DateのVariant)の値を返します。Now関数 Now 使用例. MsgBoxNow…2013/06/0912:57:46現在の日時 ※VBA関数一覧
Second関数
Second関数は時刻から分の整数を返しますバリアント型(内部処理形式DateのVariant)の値を返します。Second関数 Seconde(time) time 必ず指定します。引数timeには時刻を表す任意のバリアント型(Variant)の値数式文字列式またはこれらを組み合わせた値を指定します。
Time関数
Time関数は、現在のシステムの時刻を返します、バリアント型(内部処理形式DateのVariant)の値を返します。Time関数 Time システムの時刻を設定するときは、Timeステートメントを使います。使用例. MsgBoxTime…10:25:45現在の時刻 ※VBA関数一覧
Timer関数
Timer関数は、午前0時(真夜中)から経過した秒数を表す単精度浮動小数点数型(Single)の値を返します。Timer関数 Timer MicrosoftWindowsでは、Timer関数は小数点以下の値も返します。Macintoshでは、小数点以下の値は返されません。
TimeSerial関数
TimeSerial関数は、引数で指定した時、分、秒に対応する時刻を返します、バリアント型(内部処理形式DateのVariant)の値を返します。TimeSerial関数 TimeSerial(hour,minute,second) hour 必ず指定します。
TimeValue関数
TimeValue関数は時刻を表す文字列式を時刻に変換しますバリアント型(内部処理形式DateのVariant)の値を返します。TimeValue関数 TimeValue(time) time 必ず指定します。引数timeには通常0:00:00(12:00:00AM)~23:59:59(11:59:59PM)の範囲の時刻を表す文字列式を指定します。
Weekday関数
Weekday関数は、何曜日であるかを表す整数を返します、バリアント型(内部処理形式IntegerのVariant)の値を返します。Weekday関数 Weekday(date,[firstdayofweek]) date 必ず指定します。
WeekdayName関数
WeekdayName関数は、指定された曜日を表す文字列を返します。WeekdayName関数 WeekdayName(weekday,abbreviate,firstdayofweek) weekday 必ず指定します。曜日を示す数値を指定します。
Year関数
Year関数は日付から年の値を返しますバリアント型(内部処理形式IntegerのVariant)の値を返します。Year関数 Year(date) date 必ず指定します。引数dateには日付を表すバリアント型(Variant)の値数式文字列式またはこれらを組み合わせた値を指定します。
練習問題12(日付関数の練習)
VBA練習問題 ・曜日別の売上合計・日数・平均売上を計算しG2~I8に入れて下さい。練習問題用のExcelファイル こちらからダウンロードできます。zipはこちらです。ABCDEFGHI ※上記表の全体を選択しコピー(Ctrl+C)の後エクセルのシートのA1セルに貼り付け(Ctrl+V)してください。

第45回.VBA関数(Format)
VBAのFormat関数は、指定した書式に変換した文字列を返す関数で、ワークシート関数のTEXT関数とほぼ同様の機能になります。Format関数は、非常に使用頻度の高い関数でありマクロVBAにおいては重要かつ必須習得関数です。Format関数はしっかと使えるようにしておきましょう。

日付のオートフィルタ(AutoFilter)
とても便利なオートフィルターですが、日付となると、結構大変です。以下の表で説明します。普通は、こんなように指定します。Operator:=xlFilterValues は2007以降で追加された機能です。

日付の検索(配列の使用)
日付の検索は、いろいろと面倒です。Findメソッドで検索する場合、表示書式に左右されますので、表示書式を変更しただけで、検索されなくなります。これは、手作業での検索においても同様になりますが、マクロとしてはいかにも不便です。




同じテーマ「エクセル関数超技」の記事

選択行の色を変える(条件付き書式,Worksheet_SelectionChange)
他ブックを参照できる関数、他ブックを参照できない関数
時間計算で困ったときの確実な対処方法
VLOOKUP 左側の列を取得(MATCH,INDEX,OFFSET)
SUMIF関数の良くある間違い
論理式とは条件式とは(IF関数,AND関数,OR関数)
先頭の数値、最後の数値を取り出す
最後の空白(や指定文字)以降の文字を取り出す
SUMIFの間違いによるパフォーマンスの低下について
数値範囲で表検索するVLOOKUP近似一致
エクセルの日付と時刻のまとめ


新着記事NEW ・・・新着記事一覧を見る

文字列結合&でコンパイルエラーになる理由|VBA技術解説(9月19日)
Byte配列と文字コード関数について|VBA技術解説(8月20日)
PowerQueryの強力な機能をVBAから利用する方法|VBA技術解説(8月4日)
練習問題31(セル結合を解除して値を埋める)|VBA練習問題(7月30日)
練習問題30(マトリックス→リスト形式)|VBA練習問題(7月25日)
Applicationを省略できるApplicationのメソッド・プロパティ一覧|VBA技術解説(7月22日)
コレクション(Collection)の並べ替え(Sort)に対応するクラス|VBA技術解説(7月20日)
CSVの読み込み方法(ジャグ配列)|VBAサンプル集(7月15日)
その他のExcel機能(グループ化、重複の削除、オートフィル等)|VBA入門(7月14日)
オートフィルタ退避回復クラスを複数シート対応させるVBAクラス|VBA技術解説(7月6日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数とデータ型(Dim)|ExcelマクロVBA入門
6.繰り返し処理(For Next)|ExcelマクロVBA入門
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.ひらがな⇔カタカナの変換|エクセル基本操作
10.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説



  • >
  • >
  • >
  • エクセルの日付と時刻のまとめ

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。




    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
    本文下部へ