- ベストアンサー
Excelで日付を抜き出したい
画像のようにA2~A3に文字列で日付が入力されています。 B2:C3に日付形式でA2:A3に入力されている日付を西暦をつけて抜き出したいと考えています。 B2:C3にはどのような式を入力すればいいでしょうか。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
=TEXT(LEFT(A1,FIND("-",A1&"-")-1),"yyyymmdd") と =TEXT(REPLACE(A1,1,FIND("-",A1&"-"),""),"yyyymmdd") でいいですね。
その他の回答 (7)
- chayamati
- ベストアンサー率41% (260/624)
B,C列はシリアル値ですね、A2に次式を入れてコピペ =IF(C2="",TEXT(B2,"MM/DD "),TEXT(B2,"MM/DD ")&"-"&TEXT(C2,"MM/DD "))で、如何でしょうか
- bunjii
- ベストアンサー率43% (3589/8249)
確認事項 1.A列は開始日付と終了日付の間に半角のマイナスがありますか? 2.A列の月/日は2桁ですか?、11/28-12/03のようになっていますか? 3.2020年になったときはどうしますか? 提示の例のみであればB2に次の式 =IF(A2="","",2019)&SUBSTITUTE(LEFT(A2,FIND("-",A2&"-")-1),"/","") C2には次の式 =IF(FIND("-",A2&"-")<LEN(A2),2019,"")&SUBSTITUTE(MID(A2,FIND("-",A2&"-")+1,LEN(A2)),"/","")
- imogasi
- ベストアンサー率27% (4737/17069)
#3です。 この質問に対する方法は、 (1)文字列ー変形ー文字列 (2)(A)文字列ー変形ーDATEVAKUE-日付シリアル値ー表示 形式設定で見た目希望通りにする (B)文字列ー変形ーDATEVAKUE-日付シリアル値ーTEXT 関数で、希望の文字列にする があると思う。 他は(1)のタイプの回答のようです。 面倒なやり方と思うかもしれませんが。将来の質問者のエクセル学習のことを考えて、あえて言わせてもらえば、エクセルでは、(内容的に見て)日付は、日付シリアル値に直して、あと希望を実現する関数や表示形式を考える癖をつけた方がよいと思う。日付に関する関数は、日付シリアル値の引数を要求しているから。 ーー (2)の(B)は =TEXT(DATEVALUE("2019/"& MID(A2,FIND("-",A2)+1,LEN(A2)-FIND("-",A2))),"yyyyymmdd") ーー #3は(2)(A)の解法ですが。
- msMike
- ベストアンサー率20% (364/1804)
1.yyyymmdd に書式設定した下記のセルにそれぞれ右側の式を入力  ̄ ̄ B2: =IF(ISERROR(FIND("-",A2)),TEXT(A2*1,"yyyy/mm/dd")*1,TEXT(LEFT(A2,FIND("-",A2)-1)*1,"yyyy/mm/dd")*1)  ̄ ̄ C2: =IF(ISERROR(FIND("-",A2)),"",TEXT(MID(A2,FIND("-",A2)+1,5)*1,"yyyy/mm/dd")*1) 2.範囲 B2:C2 を下方にオートフィル
- imogasi
- ベストアンサー率27% (4737/17069)
A3に11/2 とあるとします。 B3に=DATEVALUE("2019/" &A3) と入れます。 表示形式の設定をユーザー定義でyyyymmddとする。 これで 見た目は、20191102 となる。実態(=セルの値)は整数 43771(日付シリアル値)です。 これ(日付シリアル値のこと)を知っている人なら、この質問はしないだろうな。 文字列のハイフンの次から取り出すのは、Find関数で、ハイフンの位置を求め MID関数で切り出す。 =MID(A4,FIND("-",A4)+1,LEN(A4)-FIND("-",A4)+1) これに対し、DATEVALUEをかぶせる。 ーー 年数字が省略されている文字列データらしいのでどこか(年をまたぐデータ)で苦労することだろう。
- Mathmi
- ベストアンサー率46% (54/115)
年は現在の年、抽出したものは日付型ではなく文字列の関数です。 B2セルとC2セルに入力し、後はオートフィルして下さい。 B2:=IF(ISERROR(SEARCH("-",A2)),TEXT(A2,"YYYYMMDD"),TEXT(LEFT(A2,SEARCH("-",A2)-1),"YYYYMMDD")) C2:=IF(ISERROR(SEARCH("-",A2)),"",TEXT(MID(A2,SEARCH("-",A2)+1,10),"YYYYMMDD"))
- kkkkkm
- ベストアンサー率66% (1719/2589)
B2に =SUBSTITUTE("2019"&LEFT($A2,IFERROR(FIND("-",$A2,1)-1,LEN(A2))),"/","") C2に =IFERROR(SUBSTITUTE("2019"&RIGHT($A2,FIND("-",$A2,1)-1),"/",""),"") として下にコピーしてください。 質問に添付されている画像のような文字列として表示します。