プロが教える店舗&オフィスのセキュリティ対策術

エクセル置き換えで、指定の文字が、〇回出現した、それ以降を置き換えたいのですが、どのように
したらよいでしょうか?

ABCDABCD

Aが2回目の後を、★に置き換えしたい。

ABCDA★★★

A 回答 (3件)

こんなのはどうでしょう?



=LEFT(LEFT(A1,FIND("★",SUBSTITUTE(A1,"A","★",2)))&REPT("★",LEN(A1)),LEN(A1))

なお、変換前の文字列の中には、"★" が存在しない前提の式になっています。もし存在するようであれば、他の存在しない文字に変えて下さい。
    • good
    • 0
この回答へのお礼

ありがとうございます。できました! 2のところを変えたら、出現回数も変更できました。すごいです。助かりました。

お礼日時:2022/07/30 10:16

No1です。



>出現の回数を変えるときは、+1を増やしたらよいのでしょうか?
No1の式は、FIND関数で順に"A"の位置を求める方法なので、3回目ならもう一度ネストする必要があります。

回数を可変にしたいのなら別の方法にする必要があります。
(以下は、文字列全体から"A"の位置を全て抽出する方法になります。)

仮に、B1セルに何番目かを示す数(1、2、3・・・)があるとして、
=LEFT(A1,IFERROR(AGGREGATE(15,6,ROW(OFFSET($A$1,,,LEN(A1)))/(MID(A1,ROW(OFFSET($A$1,,,LEN($A1))),1)="A"),$B$1),LEN(A1)))&REPT("★",LEN(A1)-IFERROR(AGGREGATE(15,6,ROW(OFFSET($A$1,,,LEN(A1)))/(MID(A1,ROW(OFFSET($A$1,,,LEN($A1))),1)="A"),$B$1),LEN(A1)))
とかでしょうか。

※ 式中の$B$1の部分を、直接数値で指定することももちろん可能です。
※ 検索文字列(="A")は1文字と仮定していますので、2文字以上になる場合は、検索対象文字数や、変更する文字数などを調整してください。
    • good
    • 0
この回答へのお礼

ありがとうございます。できました。複数行あるときは、$B$1が、自動で変わらないので、一つづつ入れないといけないですかね? 数値にしても同じ結果になりましたので、こちらでやってみます。ありがとうございます!

お礼日時:2022/07/30 10:25

こんばんは



ひとまず関数を利用する例を・・
固定値にしたければ、変換した後、「コピー」-「値をペースト」すればよろしいかと。

Aが2個ない場合にどうするのかなど不明点があるので、あくまでも要領としての一例です。
元の文字列がA1セルにあるとして、
=LEFT(A1,IFERROR(FIND("A",A1,FIND("A",A1)+1),LEN(A1))) & REPT("★",LEN(A1)-IFERROR(FIND("A",A1,FIND("A",A1)+1),LEN(A1)))
ではいかがでしょうか?
    • good
    • 1
この回答へのお礼

ありがとうございます。できました。
出現の回数を変えるときは、+1を増やしたらよいのでしょうか?

お礼日時:2022/07/29 21:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!