Excelを使っていて、「特定の文字をまとめて別の文字に変えたい」と思う場面は多いですよね。例えば、商品名の表記を統一したり、不要な記号を削除したりする作業です。
そんなときに便利なのが「SUBSTITUTE(サブスティチュート)関数」です。さらに、「文字の位置を特定して置き換えたい」という場合には「FIND(ファインド)関数」を組み合わせることで、より柔軟な操作が可能になります。
この記事では、文字列操作の基本となるSUBSTITUTE関数の使い方から、FIND関数を組み合わせた応用テクニックまで、初心者の方にもわかりやすく丁寧に解説します。
文字を置き換える基本の「SUBSTITUTE関数」
SUBSTITUTE関数は、指定した文字列の中から「特定の文字」を探し出し、それを「別の文字」に置き換える関数です。
SUBSTITUTE関数の基本書式
数式は以下のように記述します。
`=SUBSTITUTE(元の文字列, 検索する文字列, 置き換える文字列, [置換対象])`
それぞれの引数の意味は以下の通りです。
- 元の文字列:置換したい文字が入っているセルや文字列を指定します。
- 検索する文字列:置き換えたい(消したい)文字を指定します。
- 置き換える文字列:新しく入れたい文字を指定します。空文字("")を指定すると、その文字を削除することができます。
- 置換対象(省略可能):文字列の中に同じ文字が複数ある場合、「何番目の文字を置き換えるか」を指定します。省略すると、一致するすべての文字が置き換わります。
具体的な活用例
例えば、セルB4に「Excel 2010」という文字が入っており、これを「Word 2010」に変えたい場合は、次のような数式になります。
`=SUBSTITUTE(B4, "Excel", "Word")`
このように、関数を使うことで簡単に文字を入れ替えることができます。
SUBSTITUTE関数を使うメリット
Excelには「Ctrl + H」で呼び出せる標準の置換機能がありますが、あえて関数を使うメリットは「自動化」にあります。
関数で数式を組んでおけば、元のセルの内容を変更したときに、置換後の結果も自動的に更新されます。また、数式を下にコピーすれば、大量のデータに対しても一瞬ですべての置換処理を適用できるため、非常に効率的です。
文字の位置を特定する「FIND関数」と「REPLACE関数」
SUBSTITUTE関数は「特定の文字」を基準に置き換えますが、「〇文字目から〇文字分を置き換えたい」という場合には、別の関数が登場します。それが「REPLACE(リプレイス)関数」です。
そして、そのREPLACE関数の「開始位置」を自動で決めるために役立つのが「FIND関数」です。
FIND関数の役割
FIND関数は、指定した文字が「左から数えて何番目にあるか」を数値で返してくれる関数です。
REPLACE関数との組み合わせ例
REPLACE関数の書式は `=REPLACE(元の文字列, 開始位置, 文字数, 置換文字列)` です。
ここで、例えば「〇〇県」という文字から「県」までを削除したい場合を考えてみましょう。県名には2文字のもの(例:岩手県)と3文字のもの(例:鹿児島県)があるため、単純に「1文字目から3文字分を消す」という指定ではうまくいきません。
そこでFIND関数を使って「県」の位置を特定します。
`=REPLACE(文字列, 1, FIND("県", 文字列), "")`
この数式では、FIND関数が「県」という文字が何番目にあるかを計算し、その位置までをすべて空白("")に置き換えるため、県名が何文字であっても正確に削除することが可能です。
同様の手法は、電話番号の市外局番を削除したいときなど、「ハイフン(-)」の位置をFIND関数で特定して、そこまでをREPLACE関数で置換するといったケースにも応用できます。
【応用】FINDとSUBSTITUTEを組み合わせて「右から検索」する
Excelには残念ながら、「文字列を右から(後ろから)検索して位置を特定する」という単独の関数は用意されていません。しかし、SUBSTITUTE関数とFIND関数、そしてLEN関数などを組み合わせることで、擬似的に「最後にある特定の文字」を基準にした操作が可能です。
右から検索して置換する考え方
例えば、「ab-c-123-45」という文字列があり、一番最後にある「-」以降の文字を抽出したり、その位置を特定したい場合です。
そのままFIND関数を使うと、「一番最初にある-」の位置しかわかりません。そこで、以下のようなステップで考えます。
- 最後にある文字を一時的に別の文字に変える
SUBSTITUTE関数の「置換対象」引数を利用して、最後にある「-」だけを、普段使わない特殊な文字(例:「■」など)に置き換えます。 ※このとき、文字列の中に「-」が全部でいくつあるかをLEN関数とSUBSTITUTE関数を用いて計算し、その回数目の「-」を指定して置換します。
- その特殊文字をFIND関数で探す
特殊文字「■」は文字列の中にひとつしか存在しないため、FIND関数を使えば、それがもともと「一番最後にあった-」の位置であることがわかります。
このように、直接的な機能がなくても、SUBSTITUTE関数で「目印」を付け、それをFIND関数で探すという手順を踏むことで、複雑な文字列操作を実現できます。
使い分けのまとめ:どの方法を選ぶべきか
文字列を置き換えたいとき、どの方法を使うべきか迷うこともあるでしょう。状況に合わせた判断基準をまとめました。
1. 標準の「置換機能(Ctrl + H)」を使うべきとき
- 一回限りの作業である。
- 元のデータをそのまま書き換えても問題ない。
- 数式を組むのが面倒なほどシンプルな置換である。
2. 「SUBSTITUTE関数」を使うべきとき
- 特定の文字(キーワード)を別の文字に変えたい。
- 元のデータを残したまま、別のセルに置換結果を表示させたい。
- 条件が変わったときに、数式の引数を変えるだけで一括して結果を更新したい。
3. 「REPLACE関数 + FIND関数」を使うべきとき
- 置き換える文字が毎回異なるが、「〇〇という文字まで」といった規則性がある。
- 文字の「位置」に基づいて置換を行いたい。
- 変数的な文字数(2文字だったり3文字だったりするもの)に対応させたい。
まとめ
Excelでの文字置換は、単純な「SUBSTITUTE関数」だけで完結することもあれば、FIND関数やREPLACE関数を組み合わせることで高度な処理が可能になります。
- SUBSTITUTE:特定の「文字」を狙って置き換える。
- FIND:特定の「文字の位置」を数字で捉える。
- REPLACE:特定の「位置」から指定文字数を置き換える。
この3つの役割を理解し、適切に組み合わせることで、面倒な文字列の整理作業を大幅に効率化できるはずです。まずは簡単なSUBSTITUTE関数から試して、徐々にFIND関数を組み合わせた数式に挑戦してみてください。
ピックアップ記事



