こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excelで日付を抜き出したい

画像のようにA2~A3に文字列で日付が入力されています。
B2:C3に日付形式でA2:A3に入力されている日付を西暦をつけて抜き出したいと考えています。
B2:C3にはどのような式を入力すればいいでしょうか。

マルチメディアファイルは削除されたか見つかりません。

投稿日時 - 2019-11-15 17:30:08

QNo.9679202

困ってます

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

=TEXT(LEFT(A1,FIND("-",A1&"-")-1),"yyyymmdd")

=TEXT(REPLACE(A1,1,FIND("-",A1&"-"),""),"yyyymmdd")

でいいですね。

投稿日時 - 2019-11-19 09:32:43

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(8)

ANo.7

B,C列はシリアル値ですね、A2に次式を入れてコピペ
=IF(C2="",TEXT(B2,"MM/DD "),TEXT(B2,"MM/DD ")&"-"&TEXT(C2,"MM/DD "))で、如何でしょうか

投稿日時 - 2019-11-18 01:04:52

ANo.6

確認事項
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)),"/","")

投稿日時 - 2019-11-16 12:31:47

ANo.5

#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)の解法ですが。

投稿日時 - 2019-11-16 11:41:55

ANo.4

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 を下方にオートフィル

投稿日時 - 2019-11-15 21:39:14

ANo.3

A3に11/2
とあるとします。
B3に=DATEVALUE("2019/" &A3) と入れます。
表示形式の設定をユーザー定義でyyyymmddとする。
これで 見た目は、20191102
となる。実態(=セルの値)は整数 43771(日付シリアル値)です。
これ(日付シリアル値のこと)を知っている人なら、この質問はしないだろうな。
文字列のハイフンの次から取り出すのは、Find関数で、ハイフンの位置を求め
MID関数で切り出す。
=MID(A4,FIND("-",A4)+1,LEN(A4)-FIND("-",A4)+1)
これに対し、DATEVALUEをかぶせる。
ーー
年数字が省略されている文字列データらしいのでどこか(年をまたぐデータ)で苦労することだろう。

投稿日時 - 2019-11-15 18:26:09

ANo.2

年は現在の年、抽出したものは日付型ではなく文字列の関数です。
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"))

投稿日時 - 2019-11-15 18:10:37

ANo.1

B2に
=SUBSTITUTE("2019"&LEFT($A2,IFERROR(FIND("-",$A2,1)-1,LEN(A2))),"/","")
C2に
=IFERROR(SUBSTITUTE("2019"&RIGHT($A2,FIND("-",$A2,1)-1),"/",""),"")
として下にコピーしてください。
質問に添付されている画像のような文字列として表示します。

投稿日時 - 2019-11-15 18:10:37

あなたにオススメの質問