Excel で年、月、日を日付形式に連結するには、どうすればよいですか?
Excel でさまざまなデータセットを扱う際、月、日、年がそれぞれ別々のセル(例:A2 が月、B2 が日、C2 が年)に格納されている状況に遭遇することがあります。こうした要素を単一のセル内で本物の日付形式に結合すれば、データがぐっと読みやすくなるだけでなく、日付計算や並べ替え、書式設定もさらにスムーズに行えるようになります。以下は、分離された値とそれを連結して得られる日付の例です:

このチュートリアルでは、年、月、日をExcel の日付に結合するためのいくつかの方法をご紹介します。これらの方法は、計算や表示に関するさまざまなニーズに対応しており、単なるテキスト結果が必要な場合、本物の日付値が求められる場合、あるいは自動化されたバッチ処理を実行したい場合など、目的に応じて最適なアプローチをお選びいただけます。
数式で年、月、日を日付に連結する
優れたツールで年、月、日を日付に連結する
Excel 数式 - DATE 関数を使用して本物のExcel 日付値を作成する
VBA コード - 複数行にわたる年、月、日の値をExcel の日付形式に自動的に連結する
数式で年、月、日を日付に連結する
主に単一セル内で連結された日付をテキスト文字列として表示したい場合は、基本的な連結数式が使えます。これは完全な日付を視覚的に表示するための手軽な方法ですが、結果はあくまでテキストであり、実際のExcel 日付値にはなりません。そのため、その結果に対して日付計算や自動日付書式設定を行うことはできません。
1。リンクされた日付を表示したい空白セルを選択し、数式バーに次の数式を入力します:
=A2&"/"&B2&"/"&C2 数式を入力したら、Enter キーを押して確定してください。

2。この数式を他の行にも適用するには、入力済みのセルのフィルハンドルを下方向にドラッグし、列内の他のセルにコピーします。これにより、選択範囲内の各行で月・日・年が連結されます。
注:この数式では、「/」が月、日、年の区切り文字として使われています。地域の日付形式やプロジェクトの要件に応じて、ダッシュ「-」やピリオド「。」など、他の区切り文字に変更できます。

この方法を使えば、分離された月・日・年の値を効率よく結合できます。ただし、結果はテキスト文字列となるため、並べ替えや算術演算など、さらに日付として操作するには、本物の日付形式に変換する必要があります。
優れたツールで年、月、日を日付に連結する
結合機能はKutools for Excelに搭載されており、複数のセルの値を直感的に1 つのセルにマージするソリューションを提供します。複雑な数式を使わずに作業を効率化でき、特に繰り返し実行する必要がある場合や大規模な範囲に対して非常に有効です。Kutools なら、カスタマイズ可能な区切り文字や出力オプション付きで、バッチ結合が簡単に実現できます。
この機能をご利用になるには、月・日・年のデータが隣接する列に配置されていることをご確認ください。その後、次の手順に従って操作してください。
1。月、日、年を含む該当列を選択し、Kutools > 結合と分割 > 行/列/セルの結合と値の保持をクリックします。

2。表示される列の結合または行ダイアログボックスで、以下の設定を行ってください:

これらの手順を完了すると、選択したセルが日付文字列として1 つのセルに結合されます。Kutools なら、大規模なデータセットもシンプルかつ確実に処理でき、要件に応じた多彩なカスタマイズにも対応します。区切り文字を設定する際は、地域ごとの日付形式の違いにご注意ください。
Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手
Excel 数式 - DATE 関数を使用して本物のExcel 日付値を作成する
日付を単に表示するだけでなく、さらに計算を行ったり、自動書式を適用したり、Excel の日付関数を活用したりする必要がある場合は、値を本物の日付形式として結合することをおすすめします。Excel のDATE 関数を使えば、年、月、日をシリアル日付番号に統合でき、期間の計算、スケジュール管理、日付による並べ替えなどの操作をすぐに実行できるようになります。
適用シナリオ:財務レポート、タイムトラッキング、時系列分析など、結果をテキスト文字列ではなく実際のExcel 日付として扱う必要があるタスクにご利用ください。
注意:数式エラーを防ぐには、各セルに有効な値(例:月は1~12 の範囲内、日はその月の日数以内、年は有効な数値)が含まれていることをご確認ください。
1。実際の日付を表示したい空白セル(例:D2)をクリックし、次の数式を入力してください:
=DATE(C2,A2,B2) この数式を使用するには、C2 に年、A2 に月、B2 に日がそれぞれ入力されている必要があります。ワークシートの構造に合わせて、必要に応じてセル参照を調整してください。
2。Enter キーを押して数式を確定すると、結果のセルには実際の日付値が格納されます。その後、「ホーム」タブの「数値の書式」オプションを使えば、「mm/dd/yyyy」など好きな日付形式で表示できます。
3。数式を他の行にも適用するには、結果セルを選択してフィルハンドルを下にドラッグし、データセット全体に数式を広げましょう。
ヒント:通常の日付ではなくシリアル値が表示される場合は、セル(またはセル範囲)を右クリックしてセルの書式設定を開き、日付を選択して書式を変更してください。これで、標準的な日付表記が表示されます。
注意事項:参照セルに数値以外のテキストが含まれていると、#VALUE! などのエラーが発生する可能性があります。データに応じて、年・月・日の順序が正しいかご確認ください。
VBA コード - 複数行にわたる年、月、日の値をExcel の日付形式に自動的に連結する
大規模なリストを扱う場合や手動入力を完全に排除したいシーンなど、高度なバッチ処理や自動化が求められる際には、VBA の活用が非常に実用的です。シンプルなマクロを使うだけで、指定した列の値を連結し、データセット全体にわたって本物のExcel 日付を自動生成できます。このアプローチは柔軟性と効率性を兼ね備え、数百行から数千行に及ぶデータもワンクリックで一括処理可能です。
適用シナリオ:繰り返しの大規模タスクで、列に本物の日付値を指定範囲内に入れる必要がある場合や、さらにカスタマイズしたい場合には、VBA 自動化がおすすめです。
1。Excel の VBA エディターにアクセスするには、開発者タブ > Visual Basicをクリックします。Microsoft Visual Basic for Applicationsウィンドウが表示されたら、挿入 > 標準モジュールをクリックします。
2。次のコードを新しいモジュールにコピー&ペーストしてください:
Sub ConcatDateToTrueDate_Fixed()
'Updated by Extendoffice 20250903
Dim ws As Worksheet
Dim StartCell As Range
Dim i As Long
Dim lastRow As Long
Dim yearCol As String
Dim monthCol As String
Dim dayCol As String
Dim outCol As String
Dim xTitleId As String
xTitleId = "Date Conversion"
Set ws = ActiveSheet
On Error Resume Next
Set StartCell = Application.InputBox("Select the FIRST DATA CELL in your table (e.g., A2). The macro will process all rows below it.", xTitleId, ws.Range("A2").Address, Type:=8)
On Error GoTo 0
If StartCell Is Nothing Then Exit Sub
yearCol = UCase(Trim(Application.InputBox("Enter the LETTER of the YEAR column (e.g., C):", xTitleId, "C", Type:=2)))
monthCol = UCase(Trim(Application.InputBox("Enter the LETTER of the MONTH column (e.g., A):", xTitleId, "A", Type:=2)))
dayCol = UCase(Trim(Application.InputBox("Enter the LETTER of the DAY column (e.g., B):", xTitleId, "B", Type:=2)))
outCol = UCase(Trim(Application.InputBox("Enter the LETTER of the OUTPUT column (e.g., D):", xTitleId, "D", Type:=2)))
If Len(yearCol) <> 1 Or Len(monthCol) <> 1 Or Len(dayCol) <> 1 Or Len(outCol) <> 1 Then
MsgBox "Invalid column letter entered. Please enter a single letter (e.g., A, B, C).", vbExclamation, xTitleId
Exit Sub
End If
lastRow = Application.Max(ws.Cells(ws.Rows.Count, yearCol).End(xlUp).Row, _
ws.Cells(ws.Rows.Count, monthCol).End(xlUp).Row, _
ws.Cells(ws.Rows.Count, dayCol).End(xlUp).Row)
If StartCell.Row > lastRow Then
MsgBox "No data found to process.", vbInformation, xTitleId
Exit Sub
End If
Application.ScreenUpdating = False
For i = StartCell.Row To lastRow
If IsNumeric(ws.Cells(i, yearCol).Value) And _
IsNumeric(ws.Cells(i, monthCol).Value) And _
IsNumeric(ws.Cells(i, dayCol).Value) Then
On Error Resume Next
ws.Cells(i, outCol).Value = DateSerial( _
Year:=ws.Cells(i, yearCol).Value, _
Month:=ws.Cells(i, monthCol).Value, _
Day:=ws.Cells(i, dayCol).Value)
If Err.Number <> 0 Then
ws.Cells(i, outCol).Value = "Invalid Date"
Err.Clear
End If
On Error GoTo 0
Else
ws.Cells(i, outCol).Value = ""
End If
Next i
Application.ScreenUpdating = True
MsgBox "Date conversion completed successfully! Processed rows: " & (lastRow - StartCell.Row + 1), vbInformation, xTitleId
End Sub 3。コードを実行するには、
ボタンをクリックしてください。するとプロンプトが表示され、データセット内の開始セルの選択、年・月・日の各列の指定、および結果となる日付の出力先を案内します。
完了後、マクロは指定した出力列にデータ全体に対して本物のExcel 日付値を入力し、計算や書式設定がすぐに使える状態になります。エラーが発生した場合は、再実行前に列参照とデータの整合性をご確認ください。
実用的なヒント:マクロスクリプトを実行する前に、必ず作業内容を保存してください。繰り返し使用する場合は、このコードをワークブック内のカスタムマクロとして保存することをおすすめします。
これらの方法から選ぶ際は、計算・自動化・使いやすさに対するご自身のニーズを考慮してください。単に表示する目的であれば、直接連結が高速で効果的です。一方、DATE 関数や VBA によるソリューションは、より高度な分析や操作に適した本物の日付値を提供します。また、Kutools は多様なデータ形式に対して効率的なバッチ処理と高い柔軟性を実現します。
予期しないデータ形式、無効な値、数式のエラーなどが発生した場合は、ソースセルとその参照を再度ご確認ください。数式や VBA でエラー処理オプションを活用し、修正を促すことも可能です。日付が正しく表示されない多くのケースは、セルの書式を変更するだけで解決します。
関連記事:
最高の Office 業務効率化ツール
| 🤖 | KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気の機能:検索・ハイライト、または重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー LOOKUP:複数条件 VLookup | 複数値 VLookup | 複数シート間 VLookup | ファジーマッチ.... | |
| 高度なドロップダウンリスト:ドロップダウンリストをすばやく作成 | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト.... | |
| 列マネージャー:指定した数の列を追加|列の移動|非表示列の表示状態を切り替え|範囲および列の比較... | |
| 注目の機能:グリッドフォーカス | デザインビュー |強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除、...)| 50+チャートタイプ(ガントチャート、...)| 40+実用的関数(誕生日に基づいて年齢を計算します、...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入、...)| 12 変換ツール(単語に変換する、為替レートの変換、...)| 7 結合と分割ツール(高度な行のマージ、セルの分割、...)|さらに多数 |
Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。
Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします
- Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
- 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
- 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!
すべてのKutools アドインが、たった1 つのインストーラーで完結。
Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。
- オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
- インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
- 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
- 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
- 最高のお得感— 個別アドイン購入よりお得