【エクセル時短】は「少しでも早く仕事を終わらせたい!」というビジネスパーソンのみなさんに、Excelの作業効率をアップするワザをお届けする連載です。毎週木曜日更新。
過去の記事一覧はこちら【エクセル時短まとめ】

何百行もあるExcelの表を手作業で修正する...何とも苦痛な作業ですよね。

その対処法として、すぐに思い浮かぶのは「検索と置換」機能を使った一括置換。しかし、元の文字列を残しておきたい場合や、置換したい文字列が複数ある場合、スマートな方法とは言えません。

【エクセル時短】第7回では、文字列を検索・置換したいときに知っておくと得する「SUBSTITUTE」(サブスティチュート)関数の使い方を紹介します。

基本は1つの文字列の検索・置換

まずはSUBSTITUTE関数の構文を確認しましょう。

SUBSTITUTE文字列, 検索文字列, 置換文字列, 置換対象

1つ目の引数[文字列]で対象の文字列があるセルを指定し、2つ目、3つ目の[検索文字列]と[置換文字列]で検索・置換する文字列を指定します。

以下の例では、隣のセルにある商品コードの中から「S」を検索して「SN」に置換しています。

1SUBSTITUTE関数を入力する

エクセル時短:

セルC3に「=SUBSTITUTE(B3,"S","SN")」と入力しています。4つ目の引数[置換対象]は省略可能で、後ほど解説します。

2文字列が置換された

エクセル時短:

セルB3にある文字列の「S」が「SN」に置換され、セルC3に表示されました。

3SUBSTITUTE関数をコピーする

エクセル時短:

セルC3の数式を下にコピーしていくと、B列にある文字列の置換結果がC列に表示されていきます。

元の文字列を残したまま検索・置換できました。ただ、こうした使い方だけでは「検索と置換」機能とあまり変わり映えがしません。

SUBSTITUTE関数では、「S」→「SN」と同時に「M」→「MN」と置換するなど、複数の文字列をまとめて置換することもできます。これを覚えると「検索と置換」機能を超えた効率化が可能になるので、以下で見ていきましょう。

SUBSTITUTE関数のネストで2つ以上の文字列を置換

先ほど入力・コピーした数式をいったん消し、セルC3のSUBSTITUTE関数を修正します。

4SUBSTITUTE関数を修正する

エクセル時短:

セルC3の数式を「=SUBSTITUTE(SUBSTITUTE(B3,"S","SN"),"M","MN")」に修正しました。

5修正したSUBSTITUTE関数をコピーする

エクセル時短:

C列で数式をコピーしていくと、B列にある文字列の「S」→「SN」、「M」→「MN」と置換されていきます。

SUBSTITUTE関数を「ネスト」(入れ子)して、2つの文字列を同時に置換しているわけです。さらにネストすれば、3つの文字列を置換することもできます。

こうしたSUBSTITUTE関数の活用で、大量の文字修正が一気にはかどります。既存の表の内容を、ある規則性に従って修正したいときなどに、ぜひ取り入れてみてください。

HINT「2番目だけ置換」の指定もできる

「S」→「SN」と置換するとき、文字列にある最初の「S」は置換しないでおきたい、ということもあります。こうした複雑な置換にもSUBSTITUTE関数は対応でき、4つ目の引数[置換対象]を使います。

例えば「=SUBSTITUTE(B3,"S","SN",2)」とすると、セルB3の文字列のうち2番目の「S」だけを「SN」に置換します。[置換対象]を省略した場合は、すべての「S」が置換されることになります。

エクセル時短:

4つ目の引数で「2」を指定しているので、セルB3にある文字列の2番目の「S」だけが「SN」に置換されます。最初(1番目)の「S」は置換されません。