• ベストアンサー

Excelの日付でテキストとシリアル値が混在

Excelのデータで、 2009年8月12日 2013年5月1日 のように日付が入力された列から「2009」「2013」のように西暦年数(4桁)のみを抜き出して別の列に記入しようとしています。 しかし、データ上、テキストとして入力されたものとシリアル値で入力されたものが混在しております。 このような混在した状態からでもうまく抜き出せる方法(関数の組み合わせ)を考えています。どなたか詳しい方、ヒントをいただけると幸いです。 (テキストの場合はleft関数で、シリアル値の場合はyear関数で抜き出せるような関数を組めればと思っていますが、うまく思いつきません。) よろしくおねがいします!

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

ん? >シリアル値のある日付ではなく純粋なテキストで記入されているものがあるように思います 再掲: >>テキストとして入力されたものとシリアル値で入力されたものが混在しております >混在していても気にせず >=YEAR(A1) >で年を取り出せます。 テキストで「2013年5月1日」と記入してあっても,YEAR関数で年を取り出せますと回答しています。 >うまくYear関数と他の関数なりで整理できればいいのですが。 =YEAR(CLEAN(SUBSTITUTE(ASC(A1)," ",""))) とでもしてみてください。 再掲: >もし出来ない時は、ご相談でご自分で書かれたようには実際のデータが記入できていないということです。 補足の情報提示: >見た目は >「2013年5月1日」 こうじゃなくて,たとえば実際には「2013年□5月□1日」(□はスペース)などのように,違うんじゃないですかと指摘しています。 どう違うのかの「可能性」を全部全部全部こちらで考えてその対処をイチイチ書き並べてたら、それこそ切りがないので,実際のあなたのデータをよく見て下さいとお話ししているワケです。

tangesazen
質問者

お礼

どうもありがとうございました。特段スペース等は入っておらず、関数がエラーになる理由は私にはわかりませんでした。

その他の回答 (2)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 通常であれば、回答No.1様の方法で十分な筈なのですが、それで出来なかったという事でしたら、次の様な方法は如何でしょうか? =YEAR(SUBSTITUTE(ASC(CLEAN($A1))," ",))

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>2009年8月12日 >2013年5月1日 >のように日付が入力された 書式はとりあえず置いておいて、「確かに」ご相談で書かれたように見える格好で入力はできているのですね? であれば >テキストとして入力されたものとシリアル値で入力されたものが混在しております 混在していても気にせず =YEAR(A1) で年を取り出せます。 まず実際に手を動かして、出来ることを確認してください。 もし出来ない時は、ご相談でご自分で書かれたようには実際のデータが記入できていないということです。

tangesazen
質問者

補足

早速ご回答ありがとうございます。 Year関数では#VALUE!のエラーが出るものがありますので、シリアル値のある日付ではなく純粋なテキストで記入されているものがあるように思います。 私の説明がまずいかもしれませんが、 見た目は 「2013年5月1日」 でも、カーソルを合わせてみれば、実際にそのようにテキストで書かれたものと2013/5/1と書かれたものがある(シリアル値が対応している)というような感じです。 うまくYear関数と他の関数なりで整理できればいいのですが。

関連するQ&A

専門家に質問してみよう