• ベストアンサー

S.20.5.30→シリアル値

こんにちは。 エクセルでセルに文字列として S.20.5.30 と入力されている値をシリアル値に変換したいのです。 プログラミングを必要としない解決方法をご存知の方、教えて下さい。 列が増えてもかまいません。 環境:Win2000 Excel2000 よろしくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

#3でアドバイスをいれた者です。手作業で「.」を取り 除いたらと書きましたが、その後メニューの編集 -置換で「S.」(エス+下点)を「S」に置換すれば、 置換後のS20.3.10は日付と認識され、数値の 書式にするとシリアル日付になる事がわかりました。

lehua
質問者

お礼

imogasiさん、ありがとうございます。 解決できました。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

エクセルのセルA1にS20.3.10と入力し(Sのあとに「.」ない場合。) 書式-セル-数値とすると、シリアル値16506に なりました。S.20.3.10ではそうならない。 そこでB列に=”S” & MID(A1,3,LEN( A1)-2)をいれ、書式を数値にしたが、ダメでした。 書式を日付にしても、1945/3/10にならない。 A列の値から「.」を手作業で削除できる数ならこの 方法も使えるかも知れない。

回答No.2

A1の内容が"S.20.5.30"(文字列)ならば、B1に =DATEVALUE(REPLACE(A1,2,1,"")) と入力すればシリアル値になると思います。 因みに、DATEVALUEの引数は日付文字列限定です。 元の"S.20.5.30"は日付文字列として認められませんが、 REPLACE関数で変換した"S20.5.30"ならOKって事で。

lehua
質問者

お礼

MidnightHawkさん、ありがとうございます。 datevalueもトライしたのですがダメでした。replaceが必要だったのですね。 勉強になりました。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

余り算式を使わないようにしてみました。 A1にS.20.5.30があるとします。消したくないのでこれをB1にコピーしてB1を加工します。 B1を選んで(実際たくさんあれば、いっしょに選択します)、  データ→区切り位置     →区切り位置ウイザード- 1/3 で元のデータの形式で       カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ を選択して次ぎへ     →区切り位置ウイザード- 2/3 で       区切り文字で、『その他』にチェックして窓に『.』(小文字ピリオド)を入力して 完了 B1= S、C1=20、D1=5、E1=30 になっているはずです。 F1に =IF(B1="S",1925,IF(B1="H",1988,0)) G1に =DATE(F1+C1,D1,E1) G1は日付になっているはずです。 F1は昭和(S)と平成(H)について計算しています。(全部のデータが昭和なら1925ばかりでてきます)

lehua
質問者

お礼

nishi6さん、早速の回答ありがとうございます。 データ区切り位置は応用できそうです。 どうもありがとうございました。

関連するQ&A

専門家に質問してみよう