- ベストアンサー
【Excel】 セルに同じ文字がある時の置換え方法
(AA)ABC(AA)BC (AA)BCD(AA)CD (AA)CDE(AA)DE ・ ・ ・ A列に、上記のように文字列があります。 先頭の(AA)を消したいのですが、 置き換えると後ろの(AA)も消えてしまいます。 前の(AA)の部分だけを消すにはどうしたらよいでしょうか。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
置換えでは難しいですね。 仮にA1からデータがあるとしたら どこかあいている列に =MID(A1,5,LEN(A1)-4) として、下へ式をコピーします。 これで前の(AA)の部分だけを消したデータができますから、それをコピーして値貼り付けしたらどうでしょうか?
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
もしセルのあたい(文字列)について 先頭から4文字が(AA)なら、その文字列の第5文字以降を切り出す(関数を入れるセル列にでる)。 こういうロジックで良いのか。ここまでは考えられるようにならないと、関数は使えない。 それにはどういう関数があるか?となって そこで文字列関数を探して、LEFT、RIGHT,MID関数を見つけることになるのだ。 B1セルに=IF(LEFT(A1,4)="(AA)",RIGHT(A1,LEN(A1)-4),A1) 下方向に式を複写。 何の工夫も要らない課題だ。 A列 B列 (AA)ABC(AA)BC ABC(AA)BC (AA)BCD(AA)CD BCD(AA)CD (AA)CDE(AA)DE CDE(AA)DE (AB)BBB(AA)DD (AB)BBB(AA)DD 条件に当てはまらない場合も例示して、どういう結果にしたいのか、質問するものだ。
=IF(ISERROR(FIND("(AA)",A1)),A1,IF(B1=1,MID(A1,5,99),A1))&""
- MackyNo1
- ベストアンサー率53% (1521/2850)
エクセルの通常の置換操作では特定の部分のみ置換することはできません(Wordにいったんコピーして検索置換をすれば変換可能です)。 他のセルに表示しても良いなら、例えば以下のような関数で表示できます。 =IF(LEFT(A1,4)="(AA)",MID(A1,5,100),A1) 必ず左4文字が「(AA)」なら「データ」「区切り位置」で、「スペースによって・・・」を選択し、区切りたい位置を指定して「完了」してください。
- mshr1962
- ベストアンサー率39% (7417/18945)
対象の位置が分かる場合 =RIGHT("(AA)ABC(AA)BC",LEN("(AA)ABC(AA)BC")-LEN("(AA)")) または =MID("(AA)ABC(AA)BC",LEN("(AA)")+1,LEN("(AA)ABC(AA)BC")) 対象の位置が未定の場合 =SUBSTITUTE("(AA)ABC(AA)BC","(AA)","",1)
お礼
早速たくさんの回答を頂き、いろいろな方法で結果を出すことが出来ました。 今回は、一番最初の回答をベストアンサーとさせて頂きます。 ありがとうございました。