• ベストアンサー

エクセル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の「,」を「;」に変更すると、 年月日と時間の間は「半角スペース」にしたいのに 「;」になってしまいます。 どうすれば上記のように変換できるのかご教示ください。

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

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.5

=SUBSTITUTE(SUBSTITUTE(REPLACE(A1,FIND(",",A1),1," "),"/",""),",",";")

yoshikijpn
質問者

お礼

参考になりました。ご回答ありがとうございました!

その他の回答 (5)

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.6

>株価は桁数が変わることがあります あ、やっぱり... なので、改良版です  =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以降では問題無い様です

yoshikijpn
質問者

お礼

またの投稿ありがとうございます。とても参考になりました。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.4

マクロの例 ActiveCell.Value = Replace(Replace(Replace(ActiveCell.Value, ",", " ", 1, 1), "/", ""), ",", ";")

yoshikijpn
質問者

お礼

参考になりました。ご回答ありがとうございました!

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

A1セルにデータがあるとして次ぎの式ではどうでしょう。 =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,",",";"),":",),"/",),";"," ",1) 引数となる最後の"と"の間は半角のスペースとします。

yoshikijpn
質問者

お礼

ご回答いただきありがとうございました!

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.2

文字列の長さ、フォーマットにバラつきが無ければ A1 に文字列が有るとして =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LEFT(A1,10)&" "&RIGHT(A1,32),"/",),":",),CHAR(44),";")

yoshikijpn
質問者

補足

ご回答いただきありがとうございます。 株価の桁数が、上記の例の通りであればうまくいきました。 ありがとうございます。 でも、株価が79.54だったのが101.50などのように 桁数が変化すると駄目です。 年月日と時分秒のフォーマットは変化しないのですが、 株価は桁数が変わることがあります。 う~ん、どうしたら良いのやら

  • fukaizumi
  • ベストアンサー率15% (6/38)
回答No.1

まず、=A1 &  ”” & A2 & A3 & A4 & A5 & A6 のようにしてセルを結合して1個のセルにして、その後Mid関数を使用して特定の位置の「,」を「;」に変換すればいいのでは。何回も操作が必要ですが、1回でやりたいのならVBAが早いかと思います。

yoshikijpn
質問者

お礼

ご回答いただきありがとうございました!

関連するQ&A