エクセルで文字データを扱っているときに、「特定の文字や数字を別の文字や数値に変換したい」と思う経験は誰もがあるはずです。いちいち手作業で何十、何百というセルの内容を変更するのは非常に大変で手間がかかります。そんなことをしなくても済む解決方法の1つに、エクセルのSUBSTITUTE関数を利用するという方法があります。
目次
SUBSTITUTE関数とは何か?
SUBSTITUTE関数はそもそも、英語の「Substitute(意味:代替する、代える)」に由来しています。
エクセルでは「=SUBSTITUTE (文字列, 検索文字列, 置換文字列,[置換対象])」という形で使い、指定した文字列の中で「検索文字列」を「置換文字列」に置換してくれます。
SUBSTITUTE関数の書式 | =SUBSTITUTE (文字列, 検索文字列, 置換文字列,[置換対象]) |
対応Version | 365、2019、2016、2013、2010 |
SUBSTITUTE関数の「文字列」について
「文字列」には、置換の対象となる文字列を指定します。
SUBSTITUTE関数の「検索文字列」について
「検索文字列」には、置換したい文字列を指定します。「文字列(対象)」に「検索文字列」含まれていない場合には、「文字列(対象)」がそのまま表示されます。
SUBSTITUTE関数の「置換文字列」について
「置換文字列」には、「検索文字列」と置換する文字列を指定します。「置換文字列」として「””」を指定すると、検索文字列を削除した結果となります。
SUBSTITUTE関数の「置換対象」について
「置換対象」は任意項目なので、不要な場合は省略できます。指定すべき状況としても「文字列(対象)」の中に複数の「検索文字列」が含まれており、「検索文字列」一部のみを「置換文字列」に置換したいときです。例えば、対象が「ああああ」という文字列で2番目の「あ」のみを「い」に変換したいときです。この時に「置換対象」を指定すると期待する結果を得ることができます。
<変換の例>
・=SUBSTITUTE (“ああああ”, ”あ”, ”い”) →「いいいい」
・=SUBSTITUTE (“ああああ”, ”あ”, ”い”,2) →「あいああ」
SUBSTITUTE関数の具体的な使い方
①SUBSTITUTE関数を使える状況を準備します。
②SUBSTITUTE関数を使いたいセルに「=SUBSTITUTE (」と入力します。
③「文字列」を指定します。
④「検索文字列」を指定します。
⑤「置換文字列」を指定します。
※必要に応じて「置換対象」を指定します。
ここでは「置換対象」は省略しています。
⑤「Enter」を押し、表示された結果を確かめます。
⑥他のセルにもSUBSTITUTE関数を反映させます。
コピペやオートフィルを利用して、他のセルにSUBSTITUTE関数を反映させましょう。
2以上の置換を同時に実現するには?
置換したい文字の組み合わせは2つ以上ある状況も想定されます。そんな時に、1つ1つずつ置換していくのは手間なので、まとめて置換を実行したいところです。
そんなときには、SUBSTITUTE関数を入れ子にするという方法があります。例えば、「あいうえお」の文字列のうち、「あ」→「か」、「い」→「き」に置換したい場合には、
=SUBSTITUTE(SUBSTITUTE(文字列,”あ”,”か”),”い”,”き”)
と設定すると、「かきうえお」という結果が表示されます。
「い」→「き」に置換するSUBSTITUTE関数の「文字列(対象)」に「あ」→「か」に置換するSUBSTITUTE関数を指定しているので、求めている結果が表示されます。
SUBSTITUTE関数がよく使われる状況
SUBSTITUTE関数が文字列を別の文字列に置換する際によく使われますが、その他にも次のような状況で利用することができます。
・空白を削除する
「文字列(対象)」に含まれるすべての空白を半角全角に関係なく削除したい時に、
=SUBSTITUTE(SUBSTITUTE(文字列,” ”,””),” “,””)
と指定するとすべての空白を削除してくれます。
似た機能を持つ関数にTRIM関数がありますが、TRIM関数の場合は文字間にあるすべての空白を削除してくれるわけではありません。TRIM関数について詳しく知りたい場合にはこちらを参照してください。
・改行を削除する
「文字列(対象)」に含まれる改行を削除したいケースもあると思います。改行をセル参照や文字入力で指定することはできませんが、SUBSTITUTE 関数とCHAR関数を組み合わせることで改行の削除を実現することができます。
CHAR関数ではCHAR(10)がセル内改行を意味するので、
=SUBSTITUTE(文字列, CHAR(10),””)
と設定するとすべての改行を削除してくれます。CHAR関数について詳しく知りたい方はこちらを参照してください。
似た機能を持つREPLACE関数
SUBSTITUTE関数に似た機能を持つ関数にREPLACE関数があります。REPLACE関数も置換に関する関数ですが、引数の設定が若干SUBSTITUTE関数と異なります。REPLACE関数について詳しく知りたい方はこちらを参照してください。