【エクセル時短】は「少しでも早く仕事を終わらせたい!」というビジネスパーソンのみなさんに、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関数の活用で、大量の文字修正が一気にはかどります。既存の表の内容を、ある規則性に従って修正したいときなどに、ぜひ取り入れてみてください。