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

テキスト文字列から日付を秒速で抽出(3 簡単な方法)

著者Xiaoyang変更日

インポートしたデータやレポート、メール、文書などからコピーしたコンテンツを扱う際、日付が個別のセルではなく長いテキスト文字列の中に埋め込まれていることがよくあります。こうした日付を使ってレコードを並べ替えたり、締切日を計算したり、タイムラインを作成したり、その他の日付ベースの分析を行うには、まず周囲のテキストから日付を正確に抽出する必要があります。特に、テキスト内に複数の日付が含まれていたり、さまざまな日付形式が混在していたりする場合、この作業は非常に難しくなります。本ガイドでは、Excel でテキスト文字列から日付を抽出するための実用的な方法をいくつかご紹介します。

テキストから日付を抽出

Excel でテキスト文字列から日付を抽出する

まとめ


数式でテキスト文字列から日付を抽出(Excel 365)

Excel 365 をご利用の場合は、TEXTSPLIT、FILTER、LET、REGEXTEST などの最新関数を活用して、日付を動的に抽出できます。

  1. 抽出した日付を表示する空白セルを選択してください。
  2. 次の数式を入力します:
    =LET(
    t,A2,
    arr,TEXTSPLIT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(t,","," "),"."," "),":"," "),CHAR(10)," ")," "),
    FILTER(arr,REGEXTEST(arr,"\d{1,4}[-/]\d{1,2}[-/]\d{1,4}"))
    )
  3. Enter キーを押して、最初のセルから結果を取得します。
  4. その後、フィルハンドルを下にドラッグして他のセルにも数式を適用します。抽出された日付は自動的に隣接セルに展開されます。
    数式でテキスト文字列から日付を抽出

この数式の仕組みは?

LET(t, A2, …):
セル A2 のテキストを変数 t に格納して、数式をより簡潔で読みやすくします。

SUBSTITUTE(...):
カンマ、ピリオド、コロン、改行などの句読点をスペースに置き換えることで、テキストをより分割しやすくします。

TEXTSPLIT(..., 「 」):
スペースを区切り文字として、クリーンアップされたテキストを複数の部分(単語やセグメント)に分割し、arr に格納します。

REGEXTEST(arr,「\d{1,4}[-/]\d{1,2}[-/]\d{1,4}」):
arr 内の各要素が「03/15/2024」や「2024-05-12」のような日付パターンに一致するかをチェックします。

FILTER(...):
日付パターンに一致する部分だけを抽出し、それ以外はすべて除外します。

メリット

  • 完全に動的で自動的に更新
  • コーディング不要
  • 1 つのセルから複数の日付を抽出可能
  • Excel 内ですぐに利用可能

制限事項

  • Excel 365(TEXTSPLIT、FILTER、REGEXTEST などの最新関数)が必要です。
  • 日付がスペースやカンマ、ピリオド、コロン、改行などの一般的な区切り文字で分離されている場合にのみ、正しく動作します。
    日付が他の文字に直接連結されている場合(例:Date(03/15/2026) や abc2026-05-12xyz)は、正しく分離されず、抽出に失敗する可能性があります。
  • 日付が論理的に有効かどうかは検証できません。
    正規表現は形式のみをチェックするため、日付として実際に妥当かどうかまでは確認しません。
    たとえば、次のような無効な値も日付として認識される可能性があります:
    99/99/9999、2024-13-40、1234/56/78。
  • 日付形式は標準化されません。
    抽出結果は元の形式のまま保持されます(例:03/15/2024、2024-05-12、12-17-2023)。
  • 一部の有効な日付形式が見逃される可能性があります。
    スラッシュ(/)またはハイフン(-)を区切り文字とする日付形式のみ対応しています。以下の形式は認識されません:
    2024.05.12、2024 年3 月15 日、2024 年3 月15 日、20240512。
    そのため、スペースを含む日付(例:2024/06/22)、複雑な句読点で囲まれた日付、実際の日付の検証、結果の一貫した書式設定などについては、対応が限られます。

ユーザー定義関数でテキスト文字列から日付を抽出

Excel 365 の機能が利用できない場合でも、ユーザー定義関数(UDF)を作成すれば、同様の結果を得ることが可能です。この方法は、複雑な数式に頼らず、整理されていないテキストから日付を抽出する際に、より高い制御性と手軽さを実現します。

Excel でユーザー定義関数を作成・使用する手順は次のとおりです:

  1. Alt + F11 キーを押して、Visual Basic エディターを開きます。
  2. [挿入]メニューをクリックし>[標準モジュール]を選択して新しいモジュールを作成します。以下のコードをモジュールウィンドウにコピー&ペーストしてください:
    Function ExtractDates(ByVal txt As String) As String
        Dim re As Object
        Dim matches As Object
        Dim m As Object
        Dim result As String
        Set re = CreateObject("VBScript.RegExp")
        With re
            .Global = True
            .IgnoreCase = True
            .Pattern = "(\d{1,4}\s*[-/]\s*\d{1,2}\s*[-/]\s*\d{1,4})"
        End With
        If re.test(txt) Then
            Set matches = re.Execute(txt)
            For Each m In matches
                If result = "" Then
                    result = Trim(m.Value)
                Else
                    result = result & ", " & Trim(m.Value)
                End If
            Next m
        End If
        ExtractDates = result
    End Function
  3. エディターを閉じてワークシートに戻ります。空白セルに次の数式を入力します:
    =ExtractDates(A2)
  4. フィルハンドルを下にドラッグして関数を他のセルにも適用すれば、各セルからすべての日付が自動的に抽出されます。
    VBAコードでテキスト文字列から日付を抽出

メリット

  • 1 つのセルから複数の日付を抽出
  • 不規則な形式(例:日付内にスペースを含む)にも対応
  • 数式よりも強力で柔軟
  • 複雑で雑然としたテキストデータに対応

制限事項:

  • VBA の基本的な知識が必要
  • .xlsm 形式でファイルを保存する必要があります
  • この方法は、「/」または「-」を区切り文字とした日付形式のみに対応しています。「2024.05.12」や「2024 年3 月15 日」、「20240512」などの他の形式の日付は、正確に認識・抽出されない可能性があります。
  • 日付が論理的に有効かどうかを検証できません。たとえば、次のような無効な値も日付として認識される可能性があります:
    99/99/9999、2024-13-40、1234/56/78。

KUTOOLS AI のセルエイドでテキスト文字列から日付を抽出

整理されていないデータを頻繁に扱うと、数式はあっという間に複雑になり、保守が困難になるだけでなく、信頼性も低下します—特に複数の日付形式や不規則な日付形式を扱う際には顕著です。KUTOOLS AI のセルエイドなら、シンプルな自然言語の指示で日付を簡単に抽出可能。数式もコーディングも不要で、フォーマットの制限を気にする必要もありません。さまざまな日付パターンを自動で認識し、複雑なテキストもスムーズに処理。わずか数秒で正確な結果を返すため、作業効率が大幅にアップします。

KUTOOLS AI は「来週の月曜日」、「明日」、「3 日前」などの相対表現を含む日付情報も認識できます。

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

Kutools for Excel をダウンロードしてインストール後、以下の手順に従ってください:

  1. [Kutools]をクリックし>KUTOOLS AI>[セルエイド]を選びます(下記スクリーンショット参照):
    Kutools AI機能を開くにはクリック
  2. セル AI オールインワンエイド]ダイアログボックスで、以下のオプションを指定します:
    1. (1)ソース範囲の範囲ボックスで、処理したいテキスト文字列を含むセルを選択します。
    2. (2)プロンプトライブラリドロップダウンをクリックし、事前定義されたプロンプトから日付抽出を選択します。
    3. (3)プロンプト内容ボックスで、必要に応じてプロンプトを確認・修正してください。
      例えば、次のように指定できます:
      • すべての日付情報を抽出
      • 「来週の月曜日」、「明日」、「3 日前」などの曖昧な日付も含める
      • 結果を標準フォーマット(例:YYYY-MM-DD)に変換
    4. (4)生成ボタンをクリックすると、KUTOOLS AI がデータの選択内容を分析し、抽出された日付を右側の結果パネルに表示します。
      ダイアログボックスでオプションを設定
  3. 結果を取得したら、まず空白のセルを選択し、抽出した日付を配置したい場所を指定してください。その後、[範囲に挿入]ボタンをクリックし、最後に[OK]をクリックします。
    結果を配置するセルを選択

結果

標準形式および曖昧な表現を含むすべての検出された日付が、指定されたセルに抽出・表示されます。
Kutools AIでテキスト文字列から日付を抽出

メリット

  • 数式やコーディングは不要
  • 複雑で不規則なテキストに対応
  • 自然言語によるプロンプトをサポート
  • 複数の日付を簡単に抽出

制限事項

  • Kutools のインストールが必要
  • AI 構成(API キーなど)が必要な場合があります
  • AI の解釈精度に依存

本日、Excel 用 KUTOOLS AI をお試しください

自然言語で簡単な指示を出すだけで、セル内の雑然としたテキストから日付、数式、名前、その他の重要な情報を瞬時に抽出できます。KUTOOLS AI のセルアシストを使えば、数式や VBA コードを一切記述することなく、複雑なExcel 作業をよりスピーディーにこなせます。


まとめ

Excel でテキスト文字列から日付を抽出する方法はいくつかあり、その選択はデータの複雑さやワークフローの要件によって異なります。本ガイドでは、それぞれに独自の強みを持つ3 つの効果的な手法をご紹介しました。

  • Excel 365 をご利用の場合、数式は動的で組み込みのソリューションとして最適です。構造化されたデータやシンプルなシナリオに特に適しています。
  • より複雑または不規則なテキストには、ユーザー定義関数(UDF)がより適しています。特に1 つのセルから複数の日付を抽出する際には、柔軟性と制御性に優れています。
  • より迅速でユーザーフレンドリーな方法をお探しの場合は、KUTOOLS AI のセルエイドをご検討ください。自然言語で簡単に日付を抽出でき、数式やコーディングは一切不要です。

ご自身のシナリオに最も適した方法を選ぶことで、テキストから日付情報を効率的に抽出・管理し、時間を節約しながらデータの正確性をさらに高められます。