いきなり答える備忘録

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

(Gスプレッドシート)SUBSTITUTE関数でテキスト中の文字列を置き換える

 Googleスプレッドシートで文字列を置き換えるのに便利な、SUBSTITUTE関数の使い方についてです。

  • SUBSTITUTE関数を使って、テキスト中の特定の文字列を別の文字列に置き換えることができます。

使用例

 次の画像ではC3セルに式を入力して、B3セルのテキスト内に3つある「なま」の文字列を一括して「生」の字に置き換えています。

 C3セル

=SUBSTITUTE(B3,"なま","生")

 第2引数で指定した文字列が、第3引数で指定した文字列に一括して置き換えられます(第4引数で置き換え対象を指定可)。



 次の画像では第3引数を「""」(空文字列)としています。
 これにより第2引数で指定した文字列を削除する(消す)ことができ、非常に多用される使い方です。

 C3セル

=SUBSTITUTE(B3,"なま","生")

 なお「=SUBSTITUTE(B3,"なま",)」としても同じ結果になります。ただし最後のカンマまでは省略できません。



 数値や日付も置換の対象にすることができますが、結果の全体が文字列になります。
 元の型を保ちたい場合はVALUE関数などを併用する必要があります。



 第4引数で正の数nを指定すると、該当する文字列のうちn番目のものだけが置き換えられます。
 正直あまり見ない使い方ですが代わりのやり方を考えるのも大変なので、覚えておいて損はありません。

 C3セル

=SUBSTITUTE(B3,"なま","生",2)

 


 ここでは「麦」「米」「卵」の3字をそれぞれひらがなに置き換えています。

 C3セル

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B3,"麦","むぎ"),"米","こめ"),"卵","たまご")

 置き換え対象が複数ある場合は式をネスト(入れ子)することとなります。
 対象が増えるにつれて式が長くなるのが痛いところですが、SUBSTITUTE関数単体で対応する限りはこうするしかありません。

構文

 SUBSTITUTE関数の構文は次のとおりです。
 引数は4つあり、第3引数までが必須とされています。

SUBSTITUTE(検索対象のテキスト, 検索文字列, 置換文字列[, 出現回数])

 第4引数(正の整数n)を指定すると検索文字列(第2引数)に該当するもののうちn番目のものだけを置き換えることができます。

応用例

 上記で見たように置き換え対象が複数ある場合に式をネストしていくと非常に長くなりますが、REDUCE/LAMBDA関数を併用して短縮する方法を次の記事内で紹介しています。

www.officeisyours.com