- ベストアンサー
エクセル2007 データの置換
よろしくお願いします。 データA 2009/01/01,12:00:00,79.54,80.01,79.49,79.98 を データB 20090101 120000;79.54;80.01;79.49;79.98 に形式を変更したいです。 いずれも、左から順に年月日、時分秒、株価(4本値)で並んでいます。 年月日のスラッシュを消すことはできます。 しかし、データAの「,」を「;」に変更すると、 年月日と時間の間は「半角スペース」にしたいのに 「;」になってしまいます。 どうすれば上記のように変換できるのかご教示ください。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
=SUBSTITUTE(SUBSTITUTE(REPLACE(A1,FIND(",",A1),1," "),"/",""),",",";")
その他の回答 (5)
- ASIMOV
- ベストアンサー率41% (982/2351)
>株価は桁数が変わることがあります あ、やっぱり... なので、改良版です =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LEFT(B1,10)&" "&RIGHT(B1,LEN(B1)-11),"/",),":",),CHAR(44),";") 本来は、こう↑するべきだとは思っていたんですが、少しでも短くしようとして手抜きしてました(^_^;) また No3の KURUMITO さんの回答が優れていますね SUBSTITUTE の機能を有効に利用しています そこで、ちょっとだけ改良を... =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B$1,","," ",1),"/",),":",),",",";") 基本的には同じなんですが 日付と時間の間の","を" "(スペース)に変換を最初にやる事によって、"," から ";" への変換を1個減らしています ps 初めの回答で","をCHAR(44)としている事について Excel2000では","とするとうまく行かなかった為です Excel2002以降では問題無い様です
お礼
またの投稿ありがとうございます。とても参考になりました。
- xls88
- ベストアンサー率56% (669/1189)
マクロの例 ActiveCell.Value = Replace(Replace(Replace(ActiveCell.Value, ",", " ", 1, 1), "/", ""), ",", ";")
お礼
参考になりました。ご回答ありがとうございました!
- KURUMITO
- ベストアンサー率42% (1835/4283)
A1セルにデータがあるとして次ぎの式ではどうでしょう。 =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,",",";"),":",),"/",),";"," ",1) 引数となる最後の"と"の間は半角のスペースとします。
お礼
ご回答いただきありがとうございました!
- ASIMOV
- ベストアンサー率41% (982/2351)
文字列の長さ、フォーマットにバラつきが無ければ A1 に文字列が有るとして =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LEFT(A1,10)&" "&RIGHT(A1,32),"/",),":",),CHAR(44),";")
補足
ご回答いただきありがとうございます。 株価の桁数が、上記の例の通りであればうまくいきました。 ありがとうございます。 でも、株価が79.54だったのが101.50などのように 桁数が変化すると駄目です。 年月日と時分秒のフォーマットは変化しないのですが、 株価は桁数が変わることがあります。 う~ん、どうしたら良いのやら
- fukaizumi
- ベストアンサー率15% (6/38)
まず、=A1 & ”” & A2 & A3 & A4 & A5 & A6 のようにしてセルを結合して1個のセルにして、その後Mid関数を使用して特定の位置の「,」を「;」に変換すればいいのでは。何回も操作が必要ですが、1回でやりたいのならVBAが早いかと思います。
お礼
ご回答いただきありがとうございました!
お礼
参考になりました。ご回答ありがとうございました!