• ベストアンサー

エクセル2003でこのような置き換えできますか?

A列                 B列 焼肉-定[ ]         食 春夏-[ ]冬         秋 小倉-[ ]子          優 松下-奈[ ]         緒 ・ ・ ・ と続くようなデータがあった場合に(崩れているかもしれませんが、B列が全て一字です) [ ]の部分をB列の文字にして 焼肉-定食 春夏-秋冬 小倉-優子  松下-奈緒 となるようにする簡単な方法はありますか?

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

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

C列に以下の数式を設定して下方向にコピーで如何でしょうか。 =SUBSTITUTE(A1,"[ ]",B1)  "[ ]"の部分は半角カギカッコと半角スペースとしています。 尚、数式の範囲をコピー→形式を選択して貼り付け→値を選択→OKで文字列として使用できます。

nekomyumyu
質問者

お礼

ありがとうございます。 実はこの関数かな?と思って自分でやったときはできなかったのですが この回答を見て「やっぱりできるはずだ!」と思ってやったらできました。 不思議ですが、自分でやったときはどこか間違っていたのかもしれません。 おかげで次からは自信を持ってできます、ありがとうございました。

その他の回答 (1)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 今仮に、A列とB列のデータが、1行目から始まっていて、置き換え後の文字列を、C列に表示させるものとします。  B列の横に並べて表示させる場合には、C1セルに次の数式を入力してから、C1セルをコピーして、C2以下に貼り付けると良いと思います。 =IF(ISERROR(FIND("[ ]",$B1)),"",SUBSTITUTE($B1,"[ ]",$A2))  又、1行おきにはせずに、間を詰めて表示させる場合には、C1セルに次の数式を入力してから、C1セルをコピーして、C2以下に貼り付けると良いと思います。 =IF(ISERROR(FIND("[ ]",INDEX($B:$B,ROW(1:1)*2-1))),"",SUBSTITUTE(INDEX($B:$B,ROW(1:1)*2-1),"[ ]",INDEX($A:$A,ROW(1:1)*2)))

nekomyumyu
質問者

お礼

ありがとうございます。下記の方法で簡単に出来てしまったので 今回はそちらをベストアンサーにしました。 今後できないケースがあったらぜひやってみたいと思います。

関連するQ&A