• ベストアンサー

エクセルでシリアル値に変換

エクセル2003を使っています。 B列に200708(2007年8月という意味です)や200911等の日付が入っています。 これではただの数字であって日付データではありません。 最終的には200708等の数字を日付データに変換して、シリアル値にしたいと思っています。 シリアル値に変換の仕方を教えて頂けないでしょうか? 私がとりあえずやった方法は、C列にRight関数とLeft関数を使って、 2007/08という具合に年と月の間に/をいれました。 これをコピー値貼り付けして、関数から値に変換すると2007/08ではなく、'2007/08と なっており、どうしても数字ではなく、文字列になってしまいシリアル値にできません。 'を空白に置換えしようとしても、置き換えができません。 手法は関数やVBAでも構いませんので、教えて頂けないでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

ご質問者の関数を数値に変換すればシリアル値になりますのでお試しください。 =(ご質問者の数式)*1

その他の回答 (5)

回答No.6

もう一案(ほとんど同じですが) =TEXT(A1,"0000-00-1")+0 表示形式は日付にしてください

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんにちは。 A1: 200708 としたら、以下のように、01を加えて、 =TEXT(A1&"01","##!/##!/##")*1 としてみたらどうでしょう。書式は、後で加工してください。

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

こんにちは! シリアル値とは1900年1月1日を「1」として 何日目か?という意味ですので、 必ず日付までデータが必要になります。 セルの書式設定の表示形式 → ユーザー定義 で yyyy/m とすれば 2009/8 のような表示は出来ますが あくまで日付のデータがあっての事です。 すなわち質問にあるような 200911 を2009/11 のようにしてもシリアル値にはなりません。 見た目だけで無理矢理やろうと思えば、 =DATE(LEFT(A1,4),RIGHT(A1,2),1) のように出来ますが、1が小の月であれば30・大の月であれば、31 (2月は除く)でもまったく同じ表示になります。 しかしこの数字を変えてしまえばシリアル値も変わるという事になります。 以上、回答になっていませんが・・・ ごめんなさいね。m(__)m

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.2

=DATE(LEFT(A1,4),RIGHT(A1,2),1) こうすると「2008/11/1」とか出てきますので、セルの書式設定で 「年月」の設定にすればオッケーです。「1日」を無条件で突っ込む ことがキモになります。

  • Us-Timoo
  • ベストアンサー率25% (914/3620)
回答No.1

その様な場合、日にちのところまで 数字がないとシリアル値にはなりませんけど、 日にちはわからないのですか?

関連するQ&A