Excel SUBSTITUTE関数で複数のテキストを置換(削除)する方法

2023年1月20日

English version.

テキストを置換するSUBSTITUTE関数は1つのテキストの置換にのみ対応していて、複数テキストの置換は不可能です。

ここではマクロを使わずに複数のテキストを置換する方法を紹介します。

手順

SUBSTITUTE関数は結果として置換後のテキストを返します。

(置換後のテキストを空白 "" にすると削除の動作になります)

そして置換後のテキストを更にSUBSTITUTE関数の引数として使うことが可能なため

SUBSTITUTE関数を入れ子にすれば複数テキストの置換が可能です。

複数のセルで実施

「いぬ:ねこ:すずめ:きんぎょ」を、一つずつ漢字に置換していきます。

まず「いぬ」を「犬」に置換します。

「いぬ」を「犬」に置換

そのセルを更にSUBSTITUTE関数で置換します。

全てを置換する方法

これを繰り返せば任意の数のテキストの置換が可能です。

単一のセルで実施

従来の方法

一つのセルにSUBSTITUTE関数を複数書いても有効です。

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B3,"いぬ","犬"),"ねこ","猫"),"すずめ","雀"),"きんぎょ","金魚")
単一セルで変換する例

ただし置換の量が増えるほど、数式が読みづらくなり

編集時にエラーを起こすことが多くなるので推奨しません。

どうしても一つにセルにする必要がある場合を除き、

複数の列や行に並べて途中のセルを非表示にすることを推奨します。

LAMBDA関数を利用する方法

Microsoft365など新しい機能が反映されているExcelの場合、

SUBSTITUTE関数を重ねることなく実現可能です。

数式にはREDUCELAMBDAOFFSETを利用します。

何パターンでも同じ数式(SUBSTITUTEの数が変わらない)で問題ありません。

=REDUCE(元のテキスト,検索文字列,LAMBDA(r,s,SUBSTITUTE(r,s,OFFSET(s,0,1))))

置換文字列を検索文字列の右におき、数式には検索文字列のセル範囲と元の文字列を指定します。

Excelを効率的に習得したい方へ

当サイトの情報を電子書籍用に読み易く整理したコンテンツを

買い切り950円またはKindle Unlimited (読み放題) で提供中です。

Word-A4サイズ:1,400ページの情報量で

(実際のページ数はデバイスで変わります)

基本的な使い方、関数の解説(140種類)、

頻出テクニックと実用例(109種類)、

XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピルなど便利な新機能を紹介。

体系的に学びたい方は是非ご検討ください。

アップデートなどの更新事項があれば随時反映しています。

なお購入後に最新版をダウンロードするには

Amazonへの問い合わせが必要です。

関連記事

マクロ・VBAを利用して実現する方法

特定の文字列を置換(SUBSTITUTE関数)