MENU

Excel関数のFINDとSUBSTITUTEで文字を探して置き換える方法

※写真はイメージです。実物とは異なる場合があります。

  • URLをコピーしました!

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関数を使うと、「一番最初にある-」の位置しかわかりません。そこで、以下のようなステップで考えます。

  1. 最後にある文字を一時的に別の文字に変える

SUBSTITUTE関数の「置換対象」引数を利用して、最後にある「-」だけを、普段使わない特殊な文字(例:「■」など)に置き換えます。 ※このとき、文字列の中に「-」が全部でいくつあるかをLEN関数とSUBSTITUTE関数を用いて計算し、その回数目の「-」を指定して置換します。

  1. その特殊文字をFIND関数で探す

特殊文字「■」は文字列の中にひとつしか存在しないため、FIND関数を使えば、それがもともと「一番最後にあった-」の位置であることがわかります。

このように、直接的な機能がなくても、SUBSTITUTE関数で「目印」を付け、それをFIND関数で探すという手順を踏むことで、複雑な文字列操作を実現できます。

使い分けのまとめ:どの方法を選ぶべきか

文字列を置き換えたいとき、どの方法を使うべきか迷うこともあるでしょう。状況に合わせた判断基準をまとめました。

1. 標準の「置換機能(Ctrl + H)」を使うべきとき

  • 一回限りの作業である。
  • 元のデータをそのまま書き換えても問題ない。
  • 数式を組むのが面倒なほどシンプルな置換である。

2. 「SUBSTITUTE関数」を使うべきとき

  • 特定の文字(キーワード)を別の文字に変えたい。
  • 元のデータを残したまま、別のセルに置換結果を表示させたい。
  • 条件が変わったときに、数式の引数を変えるだけで一括して結果を更新したい。

3. 「REPLACE関数 + FIND関数」を使うべきとき

  • 置き換える文字が毎回異なるが、「〇〇という文字まで」といった規則性がある。
  • 文字の「位置」に基づいて置換を行いたい。
  • 変数的な文字数(2文字だったり3文字だったりするもの)に対応させたい。

まとめ

Excelでの文字置換は、単純な「SUBSTITUTE関数」だけで完結することもあれば、FIND関数やREPLACE関数を組み合わせることで高度な処理が可能になります。

  • SUBSTITUTE:特定の「文字」を狙って置き換える。
  • FIND:特定の「文字の位置」を数字で捉える。
  • REPLACE:特定の「位置」から指定文字数を置き換える。

この3つの役割を理解し、適切に組み合わせることで、面倒な文字列の整理作業を大幅に効率化できるはずです。まずは簡単なSUBSTITUTE関数から試して、徐々にFIND関数を組み合わせた数式に挑戦してみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次