KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel で年、月、日を日付形式に連結するには、どうすればよいですか?

著者Siluvia変更日

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

Excel で日付を結合する例を示すスクリーンショット

このチュートリアルでは、年、月、日をExcel の日付に結合するためのいくつかの方法をご紹介します。これらの方法は、計算や表示に関するさまざまなニーズに対応しており、単なるテキスト結果が必要な場合、本物の日付値が求められる場合、あるいは自動化されたバッチ処理を実行したい場合など、目的に応じて最適なアプローチをお選びいただけます。

数式で年、月、日を日付に連結する
優れたツールで年、月、日を日付に連結する
Excel 数式 - DATE 関数を使用して本物のExcel 日付値を作成する
VBA コード - 複数行にわたる年、月、日の値をExcel の日付形式に自動的に連結する


数式で年、月、日を日付に連結する

主に単一セル内で連結された日付をテキスト文字列として表示したい場合は、基本的な連結数式が使えます。これは完全な日付を視覚的に表示するための手軽な方法ですが、結果はあくまでテキストであり、実際のExcel 日付値にはなりません。そのため、その結果に対して日付計算や自動日付書式設定を行うことはできません。

1。リンクされた日付を表示したい空白セルを選択し、数式バーに次の数式を入力します:

=A2&"/"&B2&"/"&C2

数式を入力したら、Enter キーを押して確定してください。

Excel で年、月、日を結合する数式を示すスクリーンショット

2。この数式を他の行にも適用するには、入力済みのセルのフィルハンドルを下方向にドラッグし、列内の他のセルにコピーします。これにより、選択範囲内の各行で月・日・年が連結されます。

:この数式では、「/」が月、日、年の区切り文字として使われています。地域の日付形式やプロジェクトの要件に応じて、ダッシュ「-」やピリオド「。」など、他の区切り文字に変更できます。

年、月、日を結合して日付にした結果を示すスクリーンショット

この方法を使えば、分離された月・日・年の値を効率よく結合できます。ただし、結果はテキスト文字列となるため、並べ替えや算術演算など、さらに日付として操作するには、本物の日付形式に変換する必要があります。


優れたツールで年、月、日を日付に連結する

結合機能はKutools for Excelに搭載されており、複数のセルの値を直感的に1 つのセルにマージするソリューションを提供します。複雑な数式を使わずに作業を効率化でき、特に繰り返し実行する必要がある場合や大規模な範囲に対して非常に有効です。Kutools なら、カスタマイズ可能な区切り文字や出力オプション付きで、バッチ結合が簡単に実現できます。

Kutools for Excelは300 以上の高度な機能を提供し、複雑な作業を効率化して、創造性と生産性を高めます。AI 機能と統合されたKutools は、正確にタスクを自動化し、データ管理を簡単にします。Kutools for Excel の詳細情報。。。         無料トライアル。。。

この機能をご利用になるには、月・日・年のデータが隣接する列に配置されていることをご確認ください。その後、次の手順に従って操作してください。

1。月、日、年を含む該当列を選択し、Kutools > 結合と分割 > 行/列/セルの結合と値の保持をクリックします。

Kutools for Excel の「データを失うことなく行、列、またはセルを結合」ツールのスクリーンショット

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

2.1) 値が別々の列に配置されている場合は、列の結合を選択してください。
2.2)その他の区切り文字を選択し、お好みの記号として/を入力します。
2.3) 結果の出力先を結合された値を次の場所に配置するドロップダウンメニューで指定します(例:新しい列または元のデータの隣)。
2.4)オプションセクションで、元のセルの内容を保持するか削除するかを選択します。ほとんどの場合、これらのセルの内容を削除するを選択すると、データの重複を回避できます。
2.5)OKをクリックして変更を適用します。設定どおりに結合された日付文字列が表示されます。

「列または行の結合」ダイアログボックスを示すスクリーンショット

これらの手順を完了すると、選択したセルが日付文字列として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 はお好みの言語でご利用いただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+の他の言語をサポートしています!

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 アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得