Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Excel 2013)
一つのセル内の複数の日付の抽出
投稿日時: 17/10/22 15:49:27
投稿者: okabe

お世話になっております。
一つのセル内に、複数の日付がある場合、
1番目、2番目の日付を抽出する方法について
良い方法はないでしょうか?
 
1番目の日付だけであれば、以下数式で取り出せたのですが、
2番目以降となるとどうしたら良いか分かりません。
 
 
例:
A1セル
11/13-5K 11/27-5K    
 
B1セル
=LOOKUP(10^10,LEFT(A1,ROW($1:$20))*1)    
→11/13
 
C1セル
=?
→11/27

回答
投稿日時: 17/10/22 16:08:52
投稿者: メジロ

ほとんどokabeさんの式と同じです。
 
B1: =LOOKUP(10^10,MID(A1,FIND(" ",A1)+2,ROW(A1:A20))*1)

回答
投稿日時: 17/10/22 16:13:36
投稿者: メジロ

入力ミスをしました。
 
B1: =LOOKUP(10^10,MID(B5,FIND(" ",B5)+1,ROW(A1:A20))*1)

投稿日時: 17/10/22 16:18:40
投稿者: okabe

メジロ様
 
早速のご回答ありがとうございます。
2回目は望み通りの動きとなりました。
教えて頂いた式のキーは" "で識別するということだと思いますが、
3番目に日付が出てきた場合、どう識別すれば良いでしょうか?

回答
投稿日時: 17/10/22 18:56:24
投稿者: んなっと

データ→区切り位置 を使っていったんバラバラにしてから関数を利用しましょう。
 
どうしても数式だけでやりたいときは
 
                 A   B   C   D
1 11/13-5K 11/27-7E5 2017/11/30-6E 11/13 11/27 11/30
 
B1
=IFERROR(LOOKUP(10^10,LEFT(REPLACE($A1,1,FIND("★",SUBSTITUTE(" "&$A1," ","★",COLUMN(A1)))-1,),ROW($1:$20))*1),"")
右方向・→ (★は、使われていない文字であれば何でもいい)
 
とか
 
B1
=IFERROR(LOOKUP(10^10,LEFT(TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",100)),100*COLUMN(A1)-99,100)),ROW($1:$20))*1),"")
右方向・→

回答
投稿日時: 17/10/22 21:08:27
投稿者: んなっと

必ず" "(半角スペース)の直後に日付があるという前提です。
 
次のような場合はうまくいきません。
11/13-5K 7E5-11/27-3C 11/30-6E

投稿日時: 17/10/22 22:33:47
投稿者: okabe

んなっと様
 
早速のご回答ありがとうございます。
解決致しました。