- ベストアンサー
S.20.5.30→シリアル値
こんにちは。 エクセルでセルに文字列として S.20.5.30 と入力されている値をシリアル値に変換したいのです。 プログラミングを必要としない解決方法をご存知の方、教えて下さい。 列が増えてもかまいません。 環境:Win2000 Excel2000 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#3でアドバイスをいれた者です。手作業で「.」を取り 除いたらと書きましたが、その後メニューの編集 -置換で「S.」(エス+下点)を「S」に置換すれば、 置換後のS20.3.10は日付と認識され、数値の 書式にするとシリアル日付になる事がわかりました。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルのセルA1にS20.3.10と入力し(Sのあとに「.」ない場合。) 書式-セル-数値とすると、シリアル値16506に なりました。S.20.3.10ではそうならない。 そこでB列に=”S” & MID(A1,3,LEN( A1)-2)をいれ、書式を数値にしたが、ダメでした。 書式を日付にしても、1945/3/10にならない。 A列の値から「.」を手作業で削除できる数ならこの 方法も使えるかも知れない。
- MidnightHawk
- ベストアンサー率33% (27/81)
A1の内容が"S.20.5.30"(文字列)ならば、B1に =DATEVALUE(REPLACE(A1,2,1,"")) と入力すればシリアル値になると思います。 因みに、DATEVALUEの引数は日付文字列限定です。 元の"S.20.5.30"は日付文字列として認められませんが、 REPLACE関数で変換した"S20.5.30"ならOKって事で。
お礼
MidnightHawkさん、ありがとうございます。 datevalueもトライしたのですがダメでした。replaceが必要だったのですね。 勉強になりました。
- nishi6
- ベストアンサー率67% (869/1280)
余り算式を使わないようにしてみました。 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ばかりでてきます)
お礼
nishi6さん、早速の回答ありがとうございます。 データ区切り位置は応用できそうです。 どうもありがとうございました。
お礼
imogasiさん、ありがとうございます。 解決できました。