• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【エクセル】 複数情報をふくむセルから日付のみ抽出)

【エクセル】複数情報を含むセルから日付のみ抽出方法

このQ&Aのポイント
  • Excel2013を使用している際に、複数の情報が含まれるセルから日付のみを抽出する方法について困っています。
  • 具体的には、以下のような情報がセルに含まれています。
  • -で結ばれた日付のみを抽出し、他のセルに表示することは可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

ハイフンが日付の部分よりも前の文字列に含まれていないなら以下の式で日付部分が抽出できます。 =MID(A1,FIND("-",A1)-4,10) 上記の式は日付を「文字列」として取得していますので、通常のシリアル値にしたいなら以下のように「*1」をして、セルの書式設定で表示形式を適宜日付の書式にしてください。 =MID(A1,FIND("-",A1)-4,10)*1

noriwjp
質問者

お礼

MackyNo1さま たいへん分かりやすいご回答、どうもありがとうございました。 このようなシンプルな式で解決できるものだったのですね。勉強になりました。 本当にありがとうございました!

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! VBAになってしまいますが、一例です。 日付だけで、時刻は表示しなくてよい訳ですよね? とりあえず日付は今年のシリアル値としています。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, k As Long, str As String For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row For k = 1 To Len(Cells(i, 1)) str = Mid(Cells(i, 1), k, 5) If str = "2013-" Then With Cells(i, 2) .Value = Mid(Cells(i, 1), k, 10) .NumberFormatLocal = "yyyy-mm-dd" End With End If Next k Next i End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m

noriwjp
質問者

お礼

tom04さま ご丁寧なご説明どうもありがとうございます。 VBA、マクロ... エクセル初心者のわたしには未だ難しいですが、印刷してこれから勉強してみます! どうもありがとうございました!

回答No.2

B1に以下の式を入力 =MID(A1,FIND("-",A1,1)-4,10) 但し、形式が xxxx-xx-xx となっていること、日付より前にハイフンが使われていないことが条件です。 NG例 cafe-du rock 2013-03-10 care du rock 2013-1-1 など

noriwjp
質問者

お礼

Hypnomaticさま ご回答いただきましてありがとうございました。 形式が異なったらNGなのですね。幸いデータはすべてxxxx-xx-xxで日付より前にハイフンがないので、適用することができました。 どうもありがとうございました!