いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)複数種類の文字列を置換・削除する

 Googleスプレッドシートで、関数を使って文字列中の複数の種類の文字列を一度に置換・削除する方法についてです。ただし置換先は基本的に1つですので注意してください(A,B,CをいずれもDに置き換えるという置換です。A→D、B→E、C→Fといった置換についてはこちらの記事をご覧ください)。
 置換・削除の違いやその対象に応じて、いくつかの方法を紹介します。

  • REGEXREPLACE関数を使うことで関数のネストなしに複数の文字列を一度に置換・削除できます。

手順

サンプルデータと実行結果

 セルB3,B4,B8,B9には全く同じ文字列が記録されています。
 また、C3,C4,C8,C9には目的に応じて異なる式が入力されています。

 実行結果は次のようになります。

 補足ですが、第2引数が「"大久保|東中野|高円寺"」の場合は「中野」が置換・削除の対象になりません。一方で「"[大久保東中野高円寺]"」の場合は1文字単位で置換・削除の対象となるため「中野」も対象となります。
 以下ではそれぞれの式の内容と詳細について記します。

複数種の文字列をすべて置換

 C3セルには次のように入力しています。

=REGEXREPLACE(B3,"大久保|東中野|高円寺","☆")

 これにより、文字列中の「大久保」「東中野」「高円寺」の3種の文字列がいずれも「☆」の1文字に置き換えられます。同じ文字列がいくつあってもすべて置き換えられます(以下同様)。
 「|」を使うことで複数の文字列を置換の対象にすることができます。

複数種の「文字」をすべて置換

 C4セルには次のように入力しています。

=REGEXREPLACE(B4,"[大久保東中野高円寺]","☆")

 文字列中の「大」「久」「保」「東」「中」「野」「高」「円」「寺」の9種の文字がいずれも「☆」の1文字に置き換えられます。
 「[ ]」内の文字は、1文字単位で置換の対象となります。

複数種の文字列をすべて削除

 C8セルには次のように入力しています。

=REGEXREPLACE(B8,"大久保|東中野|高円寺","")

 文字列中の「大久保」「東中野」「高円寺」の3種の文字列がいずれも削除されます。
 

複数種の「文字」をすべて削除

 C9セルには次のように入力しています。

=REGEXREPLACE(B9,"[大久保東中野高円寺]","")

 文字列中の「大」「久」「保」「東」「中」「野」「高」「円」「寺」の9種の文字がいずれも削除されます。