Excel チュートリアル: 日付と時刻の計算(差分、年齢、加算/減算)
Excelでは、日付や時刻の計算が頻繁に使用されます。たとえば、2つの日付/時刻の差を計算したり、日時を加算または減算したり、生年月日から年齢を求めたりします。このチュートリアルでは、日時計算に関するほぼすべてのシナリオを紹介し、関連する方法を提供します。
このチュートリアルのナビゲーション |
1. 2つの日付/時刻の差を計算する |
1.23 2つの時間の間の時間差を計算(24時間を超えない場合) 1.24 2つの時間の間の分数差のみを計算します(60分を超えない場合) |
1.3 Kutools for Excelを使用して2つの日時の差を計算する |
2. 日付と時刻の加算または減算 |
3. 年齢を計算する |
このチュートリアルでは、いくつかの例を作成して方法を説明します。以下のVBAコードや数式を使用する際は、必要に応じて参照を変更できます。
1. 2つの日付/時刻の差を計算する
2つの日付または2つの時刻の差を計算することは、日常のExcel作業で遭遇する最も一般的な日時計算の問題かもしれません。以下に示す例を参考にすることで、同様の問題に直面した際に効率を向上させることができるでしょう。
1.11 2つの日付間の差を日数/月数/年数/週数で計算する
ExcelのDATEDIF関数は、2つの日付間の差を日数、月数、年数、および週数で迅速に計算するために使用できます。
DATEDIF関数の詳細を確認するにはクリックしてください
2つの日付間の日数の差
セル A2 と B2 の2つの日付間の日数差を取得するには、次の数式を使用してください。
=DATEDIF(A2,B2,"d")
押す 入力 結果を得るためのキー。
2つの日付間の月数の差
セル A5 と B5 の2つの日付間の月数の差を求めるには、次の数式を使用してください。
=DATEDIF(A5,B5,"m")
押す 入力 結果を得るためのキー。
2つの日付間の年数の差
セルA8とB8の2つの日付間の年数の差を取得するには、次の数式を使用してください。
=DATEDIF(A8,B8,"y")
押す 入力 結果を得るためのキー。
2つの日付間の週の差
セル A11 と B11 の2つの日付間の週の差を取得するには、次の数式を使用してください。
=DATEDIF(A11,B11,"d")/7
押す 入力 結果を得るためのキー。
注:
1) 上記の数式を使用して週の差を取得すると、結果が日付形式で返される場合があります。必要に応じて、結果を一般または数値形式に書式設定する必要があります。
2) 上記の数式を使用して週の差を取得すると、小数が返される場合があります。整数の週番号を取得したい場合は、以下に示すように、ROUNDDOWN関数を前に追加して整数の週の差を得ることができます。
=ROUNDDOWN(DATEDIF(A11,B11,"d")/7,0)
2つの日付の間の年や日を無視して、単に月数の差を計算したい場合、以下のスクリーンショットのように、それを可能にする数式があります。
=DATEDIF(A2,B2,"ym")
押す 入力 結果を得るためのキー。
A2 は開始日、B2 は終了日です。
2つの日付間の年と月を無視して、単に日数の差を計算したい場合(下のスクリーンショット参照)、これを行うために役立つ数式があります。
=DATEDIF(A5,B5,"md")
押す 入力 結果を得るためのキー。
A5 は開始日、B5 は終了日です。
2つの日付の差を取得し、以下のスクリーンショットに示されるように「xx年、xxヶ月、xx日」を返したい場合、ここでも同様に提供されている数式があります。
=DATEDIF(A8, B8, "y") &" 年, "&DATEDIF(A8, B8, "ym") &" 月, " &DATEDIF(A8, B8, "md") &" 日"
押す 入力 結果を得るためのキー。
A8 は開始日、B8 は終了日です。
日付と今日の差を自動的に計算するには、上記の数式の end_date を TODAY() に変更するだけです。ここでは、過去の日付と今日の日数の差を計算する例を取り上げます。
=DATEDIF(A11,TODAY(),"d")
Enterキーを押して結果を取得します。
注: 将来の日付と今日の差を計算したい場合は、start_date を今日に変更し、end_date として将来の日付を指定してください。例えば次のようになります:
=DATEDIF(TODAY(),A14,"d")
DATEDIF 関数では、start_date(開始日)は end_date(終了日)より小さくなければなりません。そうでない場合、#NUM! エラー値が返されます。
1.16 2つの日付間の祝日を含むまたは含まない平日を計算する
場合によっては、指定された2つの日付の間の平日数(祝日を含むか含まないかに関わらず)を数える必要があるかもしれません。
この部分では、NETWORKDAYS.INTL 関数を使用します:
NETWORKDAYS.INTL をクリックして、その引数と使用方法を確認します。
休日を含む平日をカウント
セル A2 と B2 の2つの日付間の祝日を含む平日を数えるには、次の数式を使用してください。
=NETWORKDAYS.INTL(A2,B2)
押す 入力 結果を得るためのキー。
休日を除いた平日の数をカウント
セル A2 と B2 の間の日数(休日を含む)を計算し、範囲 D5:D9 の休日を除外するには、次の数式を使用してください:
=NETWORKDAYS.INTL(A5,B5,1,D5:D9)
押す 入力 結果を得るためのキー。
注:
上記の数式では、土曜日と日曜日を週末として扱っています。異なる週末の日がある場合は、必要に応じて [週末] の引数を変更してください。
2つの日付間の週末の数を数えたい場合、SUMPRODUCT関数またはSUM関数が役立ちます。
セル A12 と B12 の間の週末(土曜日と日曜日)をカウントするには:
=SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(A12&":"&B12)),2)>5))
または
=SUM(INT((WEEKDAY(A12-{1,7})+B12-A12)/7))
押す 入力 結果を得るためのキー。
2つの日付間にある特定の曜日(例:月曜日)の数を数えるには、INT関数とWEEKDAY関数の組み合わせが役立ちます。
セル A15 と B15 は、月曜日の数を数えたい2つの日付です。次の数式を使用してください:
=INT((WEEKDAY(A15- 2)-A15 +B15)/7)
押す 入力 結果を得るためのキー。
WEEKDAY関数の曜日の番号を変更して、異なる曜日をカウントします:
1 は日曜日、2 は月曜日、3 は火曜日、4 は水曜日、5 は木曜日、6 は金曜日、7 は土曜日)
場合によっては、以下のスクリーンショットに示すように、指定された日付に基づいてその月または年における残りの日数を知りたいことがあります。
現在の月の残り日数を取得
EOMONTHをクリックして、引数と使用方法を確認します。
セルA2に現在の月の残り日数を取得するには、次の数式を使用してください:
=EOMONTH(A2,0)-A2
押す 入力 キーを押しながら、必要に応じてこの数式を他のセルにも適用するためにオートフィルハンドルをドラッグします。
ヒント: 結果が日付形式で表示される場合がありますが、一般または数値形式に変更してください。
今年の残り日数を取得する
セルA2に今年の残り日数を取得するには、次の数式を使用してください:
=DATE(YEAR(A2),12,31)-A2
押す 入力 キーを押しながら、必要に応じてこの数式を他のセルにも適用するためにオートフィルハンドルをドラッグします。
2つの時間の差を求めるには、これを行うために役立つ2つの簡単な数式があります。
セル A2 と B2 にそれぞれ start_time(開始時間)と end_time(終了時間)が含まれていると仮定し、次の数式を使用します。
=B2-A2
=TEXT(B2-A2,"hh:mm:ss")
押す 入力 結果を得るためのキー。
注:
- end_time-start_timeを使用する場合、[セルの書式設定]ダイアログで必要に応じて結果を別の時間形式にフォーマットできます。
- TEXT(end_time-first_time,"time_format") を使用する場合、結果を表示したい時間形式を数式に入力します。たとえば、TEXT(end_time-first_time,"h") は 16 を返します。
- 終了時刻が開始時刻より小さい場合、両方の数式はエラー値を返します。この問題を解決するには、これらの数式の前にABSを追加できます。例: ABS(B2-A2)、ABS(TEXT(B2-A2,"hh:mm:ss")) のように記述し、結果を時間形式で書式設定します。
下のスクリーンショットに示すように、2つの時刻の差を時間、分、または秒で計算したい場合は、この部分に従ってください。
2つの時刻間の時間差を取得する
A5とB5にある2つの時刻間の時間差を取得するには、次の数式を使用してください。
=INT((B5-A5)*24)
押す 入力 キーを押した後、時間形式の結果を一般または数値としてフォーマットします。
小数時間の差を取得したい場合は、(終了時刻-開始時刻)*24 を使用してください。
2つの時刻間の分数差を取得する
A8とB8にある2つの時刻間の分数の差を取得するには、次の数式を使用してください。
=INT((B8-A8)*1440)
押す 入力 キーを押した後、時間形式の結果を一般または数値としてフォーマットします。
小数点以下の分数差を取得したい場合は、(end_time-start_time)*1440 を使用してください。
2つの時刻間の秒数の差を取得する
A5とB5にある2つの時刻間の秒数の差を取得するには、次の数式を使用してください。
=(B11-A11)*86400)
押す 入力 キーを押した後、時間形式の結果を一般または数値としてフォーマットします。
1.23 2つの時間の間の時間差を計算(24時間を超えない場合)
2つの時刻の差が24時間を超えない場合、HOUR関数を使用すると、これらの2つの時刻間の時間差を迅速に取得できます。
この関数の詳細については、HOUR をクリックしてください。
セルA14とB14の時間の差を時間単位で取得するには、次のようにHOUR関数を使用してください。
=HOUR(B14-A14)
押す 入力 結果を得るためのキー。
start_time は end_time よりも小さくなければなりません。そうでない場合、数式は #NUM! エラー値を返します。
1.24 2つの時間の間の分数差のみを計算します(60分を超えない場合)
MINUTE関数を使用すると、これらの2つの時刻の差を分単位で素早く取得でき、時間と秒は無視されます。
この関数の詳細については、MINUTE をクリックしてください。
セル A17 と B17 の時間の差を分単位だけで取得するには、次のように MINUTE 関数を使用してください。
=MINUTE(B17-A17)
押す 入力 結果を得るためのキー。
start_time は end_time よりも小さくなければなりません。そうでない場合、数式は #NUM! エラー値を返します。
1.25 2つの時間の間の秒数の差のみを計算します(60秒を超えない場合)
SECOND関数は、これらの2つの時刻間の秒数の差を素早く取得でき、時間と分は無視されます。
この機能の詳細については、SECONDをクリックしてください。
セルA20とB20の時間の差を秒数だけで取得するには、次のようにSECOND関数を使用してください。
=SECOND(B20-A20)
押す 入力 結果を得るためのキー。
start_time は end_time よりも小さくなければなりません。そうでない場合、数式は #NUM! エラー値を返します。
2つの時刻の差を「xx時間xx分xx秒」として表示したい場合は、次に示すようにTEXT関数を使用してください。
この関数の引数と使用方法を理解するには、TEXTをクリックしてください。
セルA23とB23の時間の差を計算するには、次の数式を使用します:
=TEXT(B23-A23,"h"" 時間 ""m"" 分 ""s"" 秒"").
押す 入力 結果を得るためのキー。
注:
この数式も24時間を超えない時間差のみを計算し、終了時刻は開始時刻より大きい必要があります。そうでない場合、#VALUE! エラー値が返されます。
2つの時刻が mm/dd/yyyy hh:mm:ss の形式で存在する場合、その差を計算するために、必要に応じて以下の数式のいずれかを使用できます。
2つの日時の時間差を取得し、結果をhh:mm:ss形式で返します
セル A2 と B2 の 2 つの日時を例として、次の数式を使用してください。
=B2-A2
押す 入力 キーを返し、datetime形式で結果を出力して、この結果を次のように書式設定します [h]:mm:ss カスタムカテゴリの下の 数値 タブで開く セルの書式設定 ダイアログ。
2つの日時間の差を取得し、日、時間、分、秒を返します
セル A5 と B5 の 2 つの日時を例として、次の数式を使用してください。
=INT(B5-A5) & " 日, " & HOUR(B5-A5) & " 時間, " & MINUTE(B5-A5) & " 分, " & SECOND(B5-A5) & " 秒 "
押す 入力 結果を得るためのキー。
注: 両方の数式において、end_datetime は start_datetime よりも大きい必要があります。そうでない場合、数式はエラー値を返します。
まず、セルをミリ秒を表示するように書式設定する方法を知る必要があります:
ミリ秒を表示したいセルを選択し、右側で選択します セルの書式設定 を有効にするための セルの書式設定 ダイアログ、選択 カスタム に カテゴリ 「数値」タブの下のリストにこれを入力します。 hh:mm:ss.000 テキストボックスに。
数式を使用:
ここでは、セルA8とB8の2つの時間の差を計算するために、次の数式を使用します:
=ABS(B8-A8)
押す 入力 結果を得るためのキー。
場合によっては、週末(土曜日と日曜日)を除いて、2つの日付間の稼働時間を計算する必要があるかもしれません。
ここで、毎日の労働時間は8時間に固定されており、セルA16とB16に指定された2つの日付間の労働時間を計算するには、次の数式を使用してください。
=NETWORKDAYS(A16,B16) * 8
押す 入力 キーを押してから、結果を一般または数値としてフォーマットします。
2つの日付間の稼働時間の計算に関する詳細例は、Excelでの「2つの日付間の稼働時間を取得」をご覧ください。
Excelに Kutools for Excelがインストールされている場合、日時差の計算の90%は、どの数式も覚えることなく迅速に解決できます。
Excelで2つの日時の差を計算するには、単に 日付と時刻ヘルパー 十分です。
1. 計算結果を配置するセルを選択し、クリックします。 Kutools > 数式ヘルパー > 日付と時刻のヘルパー.
2. 表示された「日付と時刻ヘルパー」ダイアログで、以下の設定に従ってください:
- 「差分」オプションをチェックします。
- 引数の入力セクションで開始日時と終了日時を選択します。また、入力ボックスに直接日時を手動で入力するか、カレンダーのアイコンをクリックして日付を選択することもできます。
- ドロップダウンリストから出力結果のタイプを選択してください;
- 結果セクションで結果をプレビューします。
3. 「OK」をクリックします。計算結果が出力され、他の計算が必要なセルにもオートフィルハンドルをドラッグしてください。
ヒント:
2つの日時間の差を取得し、Kutools for Excelを使用して結果を日数、時間数、分数で表示したい場合は、以下のように操作してください:
結果を配置したいセルを選択し、クリックしてください。 Kutools > 数式ヘルパー > 日付と時刻 > 2つの日付間の日数、時間数、分数をカウント.
次に、 関数ヘルパー ダイアログで開始日と終了日を指定し、クリックします。 OK.
そして、差分の結果は日数、時間、および分単位で表示されます。
この機能の使用方法について詳しくは、「日付と時刻ヘルパー 」をクリックしてください。
このアドインのすべての機能を知るには、Kutools for Excel をクリックしてください。
Kutools for Excelの30日間の無料体験版を入手するには、「無料ダウンロード」をクリックしてください
1.32 数式ヘルパーを使用して、2つの日時間の週末/平日/特定の曜日の差を計算します
2つの日付の間の週末、平日、または特定の曜日を迅速にカウントしたい場合、Kutools for Excelの 関数ヘルパー グループがお手伝いできます。
1. 計算結果を配置するセルを選択し、クリックします。 Kutools > 統計 > 2つの日付間の非営業日数を数える/2つの日付間の営業日数を数える/2つの日付間の曜日の数.
2. 表示された「関数ヘルパー」ダイアログで、開始日と終了日を指定します。「2つの日付間の曜日の数」を適用する場合は、曜日も指定する必要があります。
特定の曜日をカウントするには、1から7を使用して日曜日から土曜日を示す方法を参照してください。
3. [Ok] をクリックし、必要に応じて週末/平日/特定の曜日の数をカウントするセル上にオートフィルハンドルをドラッグします。
このアドインのすべての機能を知るには、Kutools for Excel をクリックしてください。
Kutools for Excelの30日間の無料体験版を入手するには、「無料ダウンロード」をクリックしてください
2. 日付と時刻の加算または減算
2つの日時の差を計算することに加えて、加算や減算もExcelでの通常の日時計算です。例えば、製造日と商品の保存日数に基づいて納品予定日を取得したい場合があります。
特定の日数を日付に加算または減算するには、次の2つの異なる方法があります。
セルA2の日付に21日を追加すると仮定して、以下の方法のいずれかを選んで解決してください。
方法1 日付+日数
セルを選択し、数式を入力します:
=A+21
押す 入力 結果を得るためのキー。
21日を減算したい場合は、プラス記号(+)をマイナス記号(-)に変更するだけです。
方法 2 特殊貼り付け
1. 追加したい日数をセル(例えばセルC2)に入力し、その後押してください。 Ctrl + C コピーするために使用します。
2. 次に、21日を追加したい日付を選択し、右クリックしてコンテキストメニューを表示し、選択してください 特殊貼り付け....
3. で 特殊貼り付け ダイアログ、確認 追加 オプション(日数を減算したい場合はチェック 減算 オプション)。クリック OK.
4. これで、元の日付が5桁の数字に変わりました。これらを日付として書式設定します。
日付に月を加算または減算するには、EDATE関数を使用できます。
EDATEをクリックして、その引数と使用方法を学びましょう。
セル A2 の日付に6か月を追加すると仮定して、この数式を使用します:
=EDATE(A2,6)
押す 入力 結果を得るためのキー。
日付から6か月を減算したい場合は、6を-6に変更してください。
日付にn年を加算または減算するには、DATE、YEAR、MONTH、およびDAY関数を組み合わせた数式を使用できます。
セル A2 の日付に 3 年を追加すると仮定して、この数式を使用します:
=DATE(YEAR(A2) + 3, MONTH(A2),DAY(A2))
押す 入力 結果を得るためのキー。
日付から3年を引く場合は、3を-3に変更してください。
日付に週を加算または減算する場合、一般的な数式は次のとおりです。
セル A2 の日付に 4 週間を追加すると仮定して、この数式を使用します:
=A2+4*7
押す 入力 結果を得るためのキー。
日付から4週間を引く場合は、プラス記号(+)をマイナス記号(-)に変更してください。
このセクションでは、WORKDAY関数を使用して、特定の日付に営業日を加算または減算する方法を紹介します。休日を除外する場合や含める場合についても説明します。
WORKDAYを訪れて、その引数や使用方法についての詳細を確認してください。
祝日を含む営業日を追加
セルA2には使用する日付が入っており、セルB2には追加したい日数が含まれています。次の数式を使用してください:
=WORKDAY(A2,B2)
押す 入力 結果を得るためのキー。
祝日を除く営業日を追加
セルA5には使用する日付が入っており、セルB5には追加したい日数が含まれ、範囲D5:D8には祝日がリストされています。次の数式を使用してください:
=WORKDAY(A5,B5,D5:D8)
押す 入力 結果を得るためのキー。
注:
WORKDAY関数は土曜日と日曜日を週末として扱いますが、もし週末が土曜日と日曜日である場合、週末の指定が可能なWOKRDAY.INTL関数を使用できます。
訪問する WORKDAY.INTL 詳細は次のとおりです。
日付から営業日を減算したい場合は、数式内の日数を負の値に変更するだけです。
特定の年、月、日を日付に追加したい場合、DATE、YEAR、MONTH、およびDAYS関数を組み合わせた数式が役立ちます。
A11の日付に1年2か月30日を加算するには、次の数式を使用してください:
=DATE(YEAR(A11)+1,MONTH(A11)+2,DAY(A11)+30)
押す 入力 結果を得るためのキー。
減算したい場合は、すべてのプラス記号 (+) をマイナス記号 (-) に変更してください。
ここでは、日時に時間、分、または秒を加算または減算するためのいくつかの数式を提供します。
日時に時間数を加算または減算する
A2セルの日時(または時間)に3時間を加える場合、次の数式を使用してください:
=A2+3/24
押す 入力 結果を得るためのキー。
日時に分を加算または減算する
A5セルの日時(または時刻)に15分を追加すると仮定してください。この場合、次の数式を使用してください:
=A2+15/1440
押す 入力 結果を得るためのキー。
日時に秒を加算または減算する
A8セルの日時(または時間)に20秒を追加すると仮定します。この場合、次の数式を使用してください:
=A2+20/86400
押す 入力 結果を得るためのキー。
ある週の全スタッフの勤務時間を記録したExcelの表があるとします。支払いを計算するために総勤務時間を合計するには、次の方法を使用できます。 SUM(範囲) 結果を得るためです。しかし、一般的に、合計された結果は下のスクリーンショットが示すように24時間を超えない時間として表示されます。では、正しい結果を得るにはどうすればよいでしょうか?
実際には、結果を[hh]:mm:ssの形式でフォーマットするだけで済みます。
結果セルを右クリックし、選択してください セルの書式設定 コンテキストメニュー内、およびポップアップ表示内 セルの書式設定 ダイアログで選択 カスタム blist から選択し、タイプを入力します [hh]:mm:ss 右側のセクションにあるテキストボックスに挿入し、クリックします。 OK.
合計結果は正しく表示されます。
ここでは、開始日から特定の稼働時間を加算して終了日を取得し、週末(土曜日と日曜日)および休日を除外するための長い数式を提供します。
Excel表において、A11には開始日時が含まれ、B11には作業時間が含まれており、E11とE13にはそれぞれ作業の開始時刻と終了時刻が含まれ、セルE15には除外される休日が含まれています。
このように数式を使用してください:
=WORKDAY(A11,INT(B11/8)+IF(TIME(HOUR(A11),MINUTE(A11),SECOND(A11))+TIME(MOD(B11,8),MOD(MOD(B11,8),1)*60,0)> $E$13,1,0),$E$15)+IF(TIME(HOUR(A11),MINUTE(A11),SECOND(A11))+TIME(MOD(B11,8),MOD(MOD(B11,8),1)*60,0)>$E$13,$E$11 +TIME(HOUR(A11),MINUTE(A11),SECOND(A11))+TIME(MOD(B11,8),MOD(MOD(B11,8),1)*60,0)-$E$13,TIME(HOUR(A11),MINUTE(A11),SECOND(A11)) +TIME(MOD(B11,8),MOD(MOD(B11,8),1)*60,0))
押す 入力 結果を得るためのキー。
Kutools for Excel をインストールしている場合、たった一つのツール – 日付と時刻ヘルパーr は、日時に関する加算および減算の計算のほとんどを解決できます。
1. 結果を出力したいセルをクリックし、このツールを適用するためにクリックします。 Kutools > 関数ヘルパー > 日付と時刻のヘルパー。
2. [ Date & Time Helper] ダイアログで、必要に応じて [Add] オプションまたは [Subtract] オプションをチェックし、[Arguments input] セクションで使用したい日時をセルを選択するか直接入力して、追加または減算したい年、月、週、日、時間、分、秒を指定してから、[Ok] をクリックします。スクリーンショットをご覧ください:
計算結果をプレビューできます 結果 セクション。
これで結果が出力されました。他のセルにも結果を取得するために自動ハンドルをドラッグしてください。
この機能の使用方法について詳しくは、日付と時刻ヘルパーをクリックしてください。
このアドインのすべての機能を知るには、Kutools for Excel をクリックしてください。
Kutools for Excelの30日間の無料試用版を入手するには、無料ダウンロード をクリックしてください
製品の有効期限の一覧がある場合、以下のスクリーンショットに示すように、今日の日付を基準に有効期限が切れた日付を確認してハイライトしたいかもしれません。
実際、条件付き書式を使用するとこの作業を迅速に処理できます。
1. 確認したい日付を選択してから、クリックします。 ホーム > 条件付き書式を使用する > 新しいルール.
2. で 新しい書式設定ルール ダイアログ、選択 書式設定するセルを決定する数式を使用します に ルールの種類を選択 セクションに移動し、入力します =B2
一部の製品の有効期限は、製造月の末日または製造翌月の初日となっています。製造日に基づいて迅速に有効期限をリスト化するには、この部分に従ってください。
現在の月の末日を取得
セル B13 に生産日があります。次の数式を使用してください:
=EOMONTH(B13,0)
押す 入力 結果を得るためのキー。
翌月の最初の日を取得
セルB18に生産日があります。次の数式を使用してください:
=EOMONTH(B18,0)+1
押す 入力 結果を得るためのキー。
3. 年齢を計算する
このセクションでは、指定された日付または連番に基づいて年齢を計算する方法を解決するための手法がリストされています。
生年月日に基づいて小数点以下の年齢を取得する
詳細については、引数と使用方法に関しては YEARFRAC をクリックしてください。
例えば、列 B2:B9 の生年月日のリストに基づいて年齢を取得するには、次の数式を使用してください。
=YEARFRAC(B2,TODAY())
押す 入力 キーを押して、オートフィルハンドルを下にドラッグし、すべての年齢が計算されるまで続けます。
ヒント:
1) 必要に応じて小数点以下の桁数を指定できます セルの書式設定 ダイアログ。
2) 特定の生年月日に基づいて特定の日付での年齢を計算したい場合は、TODAY() を二重引用符で囲んだ特定の日付に変更してください。例: =YEARFRAC(B2,"1/1/2021")
3) 誕生日に基づいて来年の年齢を取得したい場合は、=YEARFRAC(B2,TODAY())+1 のように数式に 1 を加えるだけです。
生年月日に基づいて整数の年齢を取得
詳細については、引数と使用方法についての DATEDIF をクリックしてください。
上記の例を使用して、B2:B9のリストにある生年月日に基づいて年齢を取得するには、次の数式を使用してください。
=DATEDIF(B2,TODAY(),"y")
押す 入力 キーを押した後、すべての年齢が計算されるまでオートフィルハンドルを下にドラッグします。
ヒント:
1) 特定の生年月日に基づいて特定の日付での年齢を計算したい場合、TODAY() を二重引用符で囲んだ特定の日付に変更してください。例: =DATEDIF(B2,"1/1/2021","y")。
2) 誕生日に基づいて来年の年齢を取得したい場合は、次のように数式に1を加えます。例: =DATEDIF(B2,TODAY(),"y")+1。
特定の生年月日に基づいて年齢を計算し、結果を以下のスクリーンショットに示すように「xx年、xxヶ月、xx日」と表示したい場合、それを実現するための長い数式があります。
セル B12 の生年月日に基づいて、年数、月数、および日数で年齢を取得するには、次の数式を使用してください。
=DATEDIF(B12,TODAY(),"Y")&" 年, "&DATEDIF(B12,TODAY(),"YM")&" 月, "&DATEDIF(B12,TODAY(),"MD")&" 日"
押す 入力 年齢を取得するキーであり、オートフィルハンドルを他のセルにドラッグします。
ヒント:
特定の生年月日に基づいて特定の日付での年齢を計算したい場合、TODAY() を二重引用符で囲まれた特定の日付に変更してください。例: =DATEDIF(B12,"1/1/2021","Y")&" 年, "&DATEDIF(B12,"1/1/2021","YM")&" か月, "&DATEDIF(B12,"1/1/2021","MD")&" 日".
Excelでは、1900年1月1日以前の日付を日時として入力したり正しく計算したりすることはできません。しかし、与えられた生年月日(1900年1月1日以前)と死亡日付に基づいて著名人の年齢を計算したい場合、VBAコードのみがそれを可能にします。
1. Alt + F11 キーを押して Microsoft Visual Basic for Applications のウィンドウを有効にし、挿入 タブをクリックして モジュール を選択し、新しいモジュールを作成します。
2. 次に、以下のコードを新しいモジュールにコピーして貼り付けます。
VBA: 1900年1月1日以前の年齢を計算する
Public Function AgeFunc(SDate As Variant, EDate As Variant) As Long
'UpdatebyExtendOffice
Dim xSMonth As Integer
Dim xSDay As Integer
Dim xSYear As Integer
Dim xEMonth As Integer
Dim xEDay As Integer
Dim xEYear As Integer
Dim xAge As Integer
If Not GetDate(SDate, xSYear, xSMonth, xSDay) Then
AgeFunc = "Invalid Date"
Exit Function
End If
If Not GetDate(EDate, xEYear, xEMonth, xEDay) Then
AgeFunc = "Invalid Date"
Exit Function
End If
xAge = xEYear - xSYear
If xSMonth > xEMonth Then
xAge = xAge - 1
ElseIf xSMonth = xEMonth Then
If xSDay > xEDay Then xAge = xAge - 1
End If
If xAge < 0 Then
AgeFunc = "Invalid Date"
Else
AgeFunc = xAge
End If
End Function
Private Function GetDate(ByVal DateStr As String, Y As Integer, M As Integer, D As Integer) As Boolean
Dim I As Long
Dim K As Long
Y = 0
M = 0
D = 0
GetDate = True
On Error Resume Next
I = InStr(1, DateStr, "/")
M = CLng(Left(DateStr, I - 1))
D = CLng(Mid(DateStr, I + 1, InStr(I + 1, DateStr, "/") - I - 1))
Y = CLng(Right(DateStr, Len(DateStr) - InStrRev(DateStr, "/")))
If M < 1 Or M > 12 Or D < 1 Or D > 31 Or Y < 1 Then
GetDate = False
End If
End Function
3. コードを保存し、シートに戻って計算された年齢を表示するセルを選択し、この場合は =AgeFunc(生年月日,死亡年月日) と入力します。 =AgeFunc(B22,C22)Enterキーを押して年齢を取得します。必要に応じて、オートフィルハンドルを使用してこの数式を他のセルにも適用できます。
もしあなたが Kutools for Excel Excelにインストールされている場合、適用することができます 日付と時刻ヘルパー 年齢を計算するツール。
1. 計算された年齢を配置したいセルを選択し、クリックします。 Kutools > 関数ヘルパー > 日付と時刻のヘルパー.
2. [日付と時刻ヘルパー] ダイアログで、
- 1) 年齢オプションを確認する;
- 2) 誕生日のセルを選択するか、直接誕生日を入力するか、カレンダーのアイコンをクリックして誕生日を選択します。
- 3) 現在の年齢を計算したい場合は「今日」オプションを選択し、過去または未来の年齢を計算したい場合は「 特定の日付」オプションを選択して日付を入力してください。
- 4) ドロップダウンリストから出力タイプを指定します。
- 5) 出力結果をプレビューします。[Ok] をクリックします。
この機能の使用方法について詳しくは、日付と時刻ヘルパー をクリックしてください。
このアドインのすべての機能を知るには、Kutools for Excel をクリックしてください。
Kutools for Excelの30日間の無料体験版を入手するには、無料ダウンロードをクリックしてください
ID番号のリストがあり、その最初の6桁が生年月日を記録するために使用されている場合(例:920315330は1992年3月15日の生年月日を意味する)、別の列に生年月日を迅速に取得するにはどうすればよいですか?
では、セルC2から始まるID番号のリストを例として取り上げ、次の数式を使用します。
=MID(C2,5,2)&"/"&MID(C2,3,2)&"/"&MID(C2,1,2)
押す 入力 キー。次に、オートフィルハンドルを下にドラッグして他の結果を取得します。
注:
数式では、必要に応じて参照を変更できます。例えば、ID番号が「13219920420392」と表示されている場合、誕生日は「1992年4月20日」です。この場合、正しい結果を得るために数式を「=MID(C2,8,2)&"/"&MID(C2,10,2)&"/"&MID(C2,4,4)」に変更することができます。
ID番号のリストがあり、その最初の6桁が生年月日を記録するために使用されている場合(例:920315330は1992年3月15日を意味する)、Excelで各ID番号に基づいて年齢を迅速に計算するにはどうすればよいですか?
では、セルC2から始まるID番号のリストを例として取り上げ、次のように数式を使用します:
=DATEDIF(DATE(IF(LEFT(C2,2)>TEXT(TODAY(),"YY"),"19"&LEFT(C2,2),"20"&LEFT(C2,2)),MID(C2,3,2),MID(C2,5,2)),TODAY(),"y")
押す 入力 キー。次に、オートフィルハンドルを下にドラッグして他の結果を取得します。
注:
この数式では、年が現在の年より小さい場合、その年は20から始まるものと見なされます。たとえば、200203943は2020年と見なされます。一方、年が現在の年より大きい場合、その年は19から始まるものと見なされます。たとえば、920420392は1992年と見なされます。
その他のExcelチュートリアル:
複数のワークブック/ワークシートを1つに統合
このチュートリアルでは、あなたが直面する可能性のあるほぼすべての結合シナリオを列挙し、それぞれに対応する専門的な解決策を提供しています。
テキスト、数字、日付のセルを分割(複数列に分離)
このチュートリアルは、テキストセルの分割、数値セルの分割、および日付セルの分割という3つの部分に分かれています。各パートでは異なる例を提供しており、同じ問題に遭遇した際にどのように分割作業を処理すればよいかを理解するのに役立ちます。
Excelでデータを失うことなく複数のセルの内容を結合する
このチュートリアルでは、セル内の特定の位置への抽出を絞り込み、Excelで特定の位置に基づいてセルからテキストや数字を抽出するためのさまざまな方法をまとめています。
Excelで2つの列を比較して一致と違いを見つける
この記事では、2つの列を比較する際に遭遇する可能性のあるほとんどのシナリオをカバーしており、お役に立てれば幸いです。
最高のOffice生産性ツール
Kutools for Excel は、ほとんどの問題を解決し、生産性を80%向上させます。
- スーパー数式バー(複数行のテキストや数式を簡単に編集可能); 閲覧レイアウト(多数のセルを簡単に読み取り・編集可能); フィルター範囲への貼り付け...
- セル/行/列を結合してデータを保持; セル内容を分割; 重複する行を統合して合計/平均を計算... 重複セルを防止; 範囲を比較...
- 重複または一意の行を選択; 空白行を選択(すべてのセルが空); スーパー検索および多くのワークブックでのあいまい検索; ランダム選択...
- 数式参照を変更せずに複数のセルを正確にコピー; 複数のシートへの自動参照作成; 箇条書き、チェックボックスなどを挿入...
- お気に入りの数式、範囲、グラフ、画像を素早く挿入; パスワードでセルを暗号化; メーリングリストを作成してメールを送信...
- テキストの抽出、テキストの追加、特定の位置の文字を削除、スペースを削除; ページング小計の作成と印刷; セルの内容とコメント間の変換...
- スーパーフィルター(他のシートにフィルタースキームを保存して適用); 月/週/日ごとの高度な並べ替え、頻度など; 太字、斜体による特殊フィルタリング...
- ワークブックとワークシートを統合; 主キーカラムに基づいてテーブルをマージ; データを複数のシートに分割; xls、xlsx、PDFの一括変換...
- ピボットテーブルのグループ化(週番号、曜日など)... ロックされたセルとロックされていないセルを異なる色で表示; 数式/名前を持つセルをハイライト...

- Word、Excel、PowerPoint、Publisher、Access、Visio、Projectでタブ付き編集と閲覧を有効化します。
- 新しいウィンドウではなく、同じウィンドウ内の新しいタブで複数のドキュメントを開き、作成します。
- 生産性を50%向上させ、毎日数百回のマウスクリックを削減します!
