excel

【Excel】文字の置き換え・一括や一部を入れ替え方法|SUBSTITUTE・REPLACE関数と検索置換機能

当サイトでは記事内に広告を含みます

Excelで作業をしていると、特定の文字列を別の文字列に置き換えたい場面に頻繁に遭遇します。

商品コードの形式を統一したい、旧社名を新社名に一括変更したい、全角文字を半角に変換したい、特定の文字だけを削除したいなど、文字の置き換えを効率的に行えれば、データの整形や修正作業が劇的にスピードアップし、手作業によるミスも防げます

一つずつ手入力で修正していては時間がかかりすぎますし、大量のデータでは現実的ではありません。

文字の置き換えには複数の方法が存在します。

Ctrl+Hで起動する検索置換機能による一括置換、SUBSTITUTE関数を使った関数による置換、REPLACE関数による位置指定の置換、さらには正規表現を活用した高度な置換まで、状況に応じて最適な手法が異なります。

本記事では、文字の置き換え・入れ替えの様々な方法を詳しく解説し、それぞれのメリットや使い分けのポイントを紹介します。

データ整形の効率化と正確性を高めたい方は、ぜひ最後までお読みください。

ポイントは

・検索置換機能で範囲内の文字を一括変更できる

・SUBSTITUTE関数は特定文字列を柔軟に置き換え可能

・REPLACE関数は位置と文字数を指定して確実に置換

です。

それでは詳しく見ていきましょう。

検索置換機能で文字を一括で置き換える

それではまず、最も手軽で強力な検索置換機能による文字の一括置換を確認していきます。

検索置換機能の基本的な使い方

検索置換機能は、シート内の特定の文字列を別の文字列に一括で置き換えられるExcelの標準機能です。

「Ctrl+H」キーを押すと「検索と置換」ダイアログボックスが開き、「検索する文字列」と「置換後の文字列」を入力するだけで簡単に使えます。

基本的な操作手順として、まず置き換えたい範囲を選択します。

範囲を選択せずに実行すると、シート全体が対象になります。

「Ctrl+H」キーを押して「検索と置換」ダイアログを開き、「検索する文字列」に置き換え前の文字を入力し、「置換後の文字列」に置き換え後の文字を入力します。

検索置換の基本操作

⌨️

Ctrl + H
で検索置換
ダイアログ起動

🔍

検索する文字列と
置換後の文字列を
入力

「すべて置換」または
「置換」を
クリック

「置換」ボタンをクリックすると、最初に見つかった箇所だけが置換され、次の候補に移動します。

一つずつ確認しながら置換したい場合に使います。

「すべて置換」ボタンをクリックすると、該当するすべての箇所が一度に置換されます。

置換が完了すると、何件置換されたかがメッセージで表示されます。

置換の実行例

置換前

株式会社ABC
株式会社XYZ
株式会社DEF

置換後

(株)ABC
(株)XYZ
(株)DEF

「株式会社」→「(株)」

ボタン 動作 用途
置換 現在の候補を置換して次へ移動 確認しながら置換したい場合
すべて置換 該当箇所すべてを一括置換 確実に全件置換したい場合
次を検索 置換せずに次の候補へ移動 特定の箇所だけスキップしたい場合

オプション設定で精密な置換を実行

「検索と置換」ダイアログの「オプション」ボタンをクリックすると、より詳細な検索条件を指定できる設定項目が表示されます。

これらのオプションを活用することで、より精密な置換が可能になります。

「大文字と小文字を区別する」にチェックを入れると、英字の大文字小文字を区別して検索します。

例えば「ABC」を検索する場合、「abc」や「Abc」は対象外になります。

「セル内容が完全に同一であるものを検索する」にチェックを入れると、セル全体が検索文字列と一致する場合のみ置換されます。

主要なオプション設定

🔤

大文字小文字区別

「ABC」と「abc」を
別として扱う

📦

完全一致

セル内容全体が
一致する場合のみ

📐

半角全角区別

「ア」と「ア」を
別として扱う

「半角と全角を区別する」にチェックを入れると、全角文字と半角文字を区別します。

「検索場所」ドロップダウンでは「シート」または「ブック」を選択でき、ブックを選択すると開いているすべてのシート内で置換が実行されます。

「検索方向」では「行」または「列」を選択でき、検索の順序を制御できます。

ワイルドカードを使った柔軟な置換

検索置換機能では、ワイルドカード文字を使って柔軟なパターンマッチングができます。

「オプション」を展開して「ワイルドカードを使用する」にチェックを入れると、特殊な記号を使った検索が可能になります。

主なワイルドカードとして、「*」(アスタリスク)は任意の文字列(0文字以上)を表し、「?」(クエスチョンマーク)は任意の1文字を表します。

例えば「2024*」と検索すると、「2024」で始まるすべての文字列が対象になります。

「2024???」と検索すると、「2024」の後ろに3文字がある文字列(例:「20241117」)が対象になります。

ワイルドカード 意味 検索例 マッチする例
* 任意の文字列 株式会社* 株式会社ABC、株式会社XYZ商事
? 任意の1文字 2024/??/?? 2024/01/01、2024/11/17
~* *記号そのもの 価格~*印 価格*印

検索置換機能を使う際の重要な注意点として、「すべて置換」を実行すると元に戻せるのは1回分だけです。

複数回「すべて置換」を実行した後で、最初の置換まで戻すことはできません。

また、置換は元のデータを直接書き換えるため、誤って置換してしまうと復元が困難になります。

重要なデータの場合は、事前にシートをコピーしてバックアップを取るか、小範囲で試してから全体に適用することをおすすめします。

さらに、数式が入力されているセルに対して置換を実行すると、数式内の文字列も置換されてしまうため、思わぬエラーが発生する可能性があります。

数式を含むシートで置換を行う場合は、特に注意が必要です。

SUBSTITUTE関数で特定の文字列を置き換え

続いては関数を使って、元データを保持したまま文字を置き換える方法を確認していきます。

SUBSTITUTE関数の基本構文と使い方

SUBSTITUTE関数は、文字列内の特定のテキストを別のテキストに置き換える関数です。

構文は「=SUBSTITUTE(文字列, 検索文字列, 置換文字列, [置換対象])」で、第4引数は省略可能です。

第1引数に元の文字列、第2引数に置き換えたい文字列、第3引数に置き換え後の文字列を指定します。

例えば、A1セルに「株式会社ABC商事」という文字列が入っている場合、「=SUBSTITUTE(A1, “株式会社”, “(株)”)」と入力すると「(株)ABC商事」が返されます。

元のデータは変更されず、別のセルに置換結果が表示されるため、元データを保持したい場合に適しています。

SUBSTITUTE関数の動作イメージ

元データ (A1)

株式会社ABC商事

結果 (B1)

(株)ABC商事

=SUBSTITUTE(A1,”株式会社”,”(株)”)

SUBSTITUTE関数は、検索文字列が複数回出現する場合、デフォルトではすべての出現箇所を置換します。

例えば「東京都東京」という文字列に対して「=SUBSTITUTE(A1, “東京”, “大阪”)」とすると、「大阪都大阪」となり、両方の「東京」が置換されます。

元の文字列 数式 結果
株式会社ABC =SUBSTITUTE(A1,”株式会社”,”(株)”) (株)ABC
TEL:03-1234-5678 =SUBSTITUTE(A1,”-“,””) TEL:0312345678
2024/11/17 =SUBSTITUTE(A1,”/”,”-“) 2024-11-17

第4引数で特定の出現箇所だけを置換

SUBSTITUTE関数の第4引数を使うと、何番目に出現する文字列を置換するかを指定できます。

例えば「東京都東京」という文字列で、最初の「東京」だけを置換したい場合は「=SUBSTITUTE(A1, “東京”, “大阪”, 1)」とします。

「1」は1番目の出現箇所を指定しています。

この機能は、区切り文字が複数ある文字列から特定の区切り文字だけを変更したい場合に便利です。

例えば「2024-11-17」という日付形式で、最初のハイフンだけをスラッシュに変更したい場合、「=SUBSTITUTE(A1, “-“, “/”, 1)」とすれば「2024/11-17」となります。

2番目のハイフンだけを変更したい場合は第4引数を「2」にします。

第4引数による出現箇所の指定

元の文字列 数式 結果
東京都東京 =SUBSTITUTE(A1,”東京”,”大阪”,1) 大阪都東京
東京都東京 =SUBSTITUTE(A1,”東京”,”大阪”,2) 東京都大阪

複数の文字を連続して置換する方法

複数の異なる文字列を置換したい場合は、SUBSTITUTE関数を入れ子にして連続的に適用します。

例えば、全角の数字とハイフンを半角に変換したい場合、「=SUBSTITUTE(SUBSTITUTE(A1, “1”, “1”), “−”, “-“)」のように記述します。

内側のSUBSTITUTE関数で最初の置換を行い、その結果を外側のSUBSTITUTE関数でさらに置換するという仕組みです。

3つ以上の置換が必要な場合は、さらに入れ子を深くします。

ただし、入れ子が深くなると数式が読みにくくなるため、適度なところで分割するか、後述する他の方法を検討すると良いでしょう。

SUBSTITUTE関数の入れ子例

元データ

TEL:03−1234

結果

TEL:03-1234

=SUBSTITUTE(SUBSTITUTE(A1,”TEL:”,””),”−”,”-“)

SUBSTITUTE関数を使う際の注意点として、検索文字列の大文字小文字は区別されます。

「ABC」と「abc」は別の文字列として扱われるため、大文字小文字を区別せずに置換したい場合は、UPPER関数やLOWER関数で統一してから処理する必要があります。

また、SUBSTITUTE関数は数式として動作するため、元データが変更されれば自動的に結果も更新されます。

これは便利な反面、元データを削除すると参照エラーになってしまいます。

最終的に固定値として残したい場合は、数式をコピーして「値として貼り付け」を行いましょう。

さらに、全角半角の変換にはASC関数やJIS関数が専用に用意されているため、全角半角変換が主目的の場合はこれらの関数を使う方が効率的です。

REPLACE関数で位置指定の文字列置換

続いては文字列の特定位置を確実に置き換えるREPLACE関数の使い方を確認していきます。

REPLACE関数の基本構文と特徴

REPLACE関数は、文字列の指定した位置から指定した文字数を別の文字列に置き換える関数です。

構文は「=REPLACE(元の文字列, 開始位置, 文字数, 置換文字列)」で、4つの引数すべてが必須です。

SUBSTITUTE関数が検索文字列を探して置換するのに対し、REPLACE関数は位置を指定して置換する点が大きく異なります。

例えば、A1セルに「2024年11月17日」という文字列が入っている場合、「=REPLACE(A1, 6, 2, “12”)」と入力すると、6文字目から2文字(「11」の部分)を「12」に置き換え、「2024年12月17日」が返されます。

開始位置は1から始まることに注意が必要です。

REPLACE関数の動作イメージ

元データ

2024年11月17日

位置: 123456789…

結果

2024年12月17日

=REPLACE(A1,6,2,”12″)

REPLACE関数の特徴は、置換前と置換後の文字数が異なっても問題なく処理できる点です。

例えば、2文字を削除したい場合は置換文字列を空文字(””)にし、逆に文字を挿入したい場合は文字数を0にして置換文字列を指定します。

元の文字列 数式 結果
商品A-001 =REPLACE(A1, 4, 1, “B”) 商品B-001
2024-11-17 =REPLACE(A1, 1, 4, “2025”) 2025-11-17
TEL:12345678 =REPLACE(A1, 1, 4, “”) 12345678

固定位置のデータ修正に最適

REPLACE関数は、データ形式が統一されていて特定の位置を確実に変更したい場合に特に有効です。

例えば、管理番号が「ABC-2024-001」という形式で統一されており、年度部分だけを2025に変更したい場合、「=REPLACE(A1, 5, 4, “2025”)」とすれば確実に5文字目から4文字(年度部分)が置換されます。

SUBSTITUTE関数の場合、「2024」という文字列が他の部分にも含まれていると意図しない箇所まで置換されてしまう可能性がありますが、REPLACE関数なら位置を指定するため、そのような心配がありません。

データ構造が明確で一定の場合は、REPLACE関数の方が安全で確実です。

FIND関数と組み合わせて動的に置換

REPLACE関数とFIND関数を組み合わせると、特定の文字列の位置を動的に検索してから置換できます。

例えば、「営業部-田中太郎」という文字列で、ハイフンより前の部分(部署名)を変更したい場合、「=REPLACE(A1, 1, FIND(“-“, A1)-1, “総務部”)」という数式を使います。

FIND関数でハイフンの位置を検索し、その位置から1を引いた文字数だけを置換対象にします。

これにより、部署名の文字数が変わっても正しく置換できます。

さらに、「=REPLACE(A1, FIND(“-“, A1)+1, LEN(A1), “山田花子”)」とすれば、ハイフンより後ろの部分(氏名)を置換できます。

FIND関数との組み合わせ例

元データ 目的 結果
営業部-田中太郎 ハイフン前を置換 総務部-田中太郎
営業部-田中太郎 ハイフン後を置換 営業部-山田花子

REPLACE関数を使う際の注意点として、開始位置や文字数の指定ミスがあります。

開始位置は0ではなく1から始まるため、最初の文字を置換したい場合は開始位置を1にします。

また、文字数に元の文字列の長さを超える値を指定しても、文字列の末尾までが置換されるだけでエラーにはなりませんが、意図しない結果になる可能性があります。

REPLACE関数も数式として動作するため、元データが変更されれば自動的に結果も更新されます。

固定値として残したい場合は、数式をコピーして「値として貼り付け」を行いましょう。

SUBSTITUTE関数とREPLACE関数の使い分けとしては、検索文字列で置換する場合はSUBSTITUTE、位置で置換する場合はREPLACEを選択すると良いでしょう。

まとめ 文字の置き換え・入れ替え完全ガイド|SUBSTITUTE・REPLACE関数と検索置換機能

エクセルの文字置き換え方法をまとめると

・検索置換機能:Ctrl+Hで起動、範囲内の文字を一括変更、ワイルドカードで柔軟な検索も可能

・SUBSTITUTE関数:特定の文字列を検索して置換、第4引数で出現箇所を指定、入れ子で複数置換も可能

・REPLACE関数:位置と文字数を指定して確実に置換、固定形式データに最適、FIND関数と組み合わせで動的処理

これらの方法にはそれぞれメリットがあり、状況に応じて使い分けることが重要です。

単発の一括置換なら検索置換機能、元データを保持して動的に更新したい場合は関数、位置が確定している場合はREPLACE関数が適しているでしょう。

ただし、置換対象の文字列が明確でない場合は注意が必要です。

意図しない箇所まで置換されることを防ぐため、小範囲で試してから全体に適用することをおすすめします。

Excelの文字置き換えテクニックを適切に活用して、データ整形の効率化を実現していきましょう!