この記事では、エクセルで特定の文字を効率的に削除する方法について解説していきます。
先に対応策の項目を示しておくと、以下のような内容となります。
・対応策1 置換機能で一括削除する
・対応策2 SUBSTITUTE関数で関数的に削除する
・対応策3 VBAマクロで自動化削除する
それぞれの性質を理解したうえで、適宜使い分けするようにしてください。
それではサンプルを見ていきましょう。
エクセルで特定の文字を一括で消す・削除する方法1【置換機能を活用】
シンプルで手早く大量のデータから特定文字を削除したい、またはExcel初心者でも簡単に実行したい場合におすすめの方法を紹介します。
以下のサンプルを使用してみていきましょう。
D列にある住所欄から「東京都」だけを削除したい場合、置換機能を使う方法です。
ですが、置換処理の前に必ず気をつけないといけないことがあります。
それは、削除する対象の範囲をきちんと選択しておくことです。
もしこれを怠った場合、消す予定でなかった範囲のセルにも削除したい内容が含まれている場合には、誤った処理がされることになりますので注意してください。
それでは、今回はD列が削除の対象となるため、ここではD列全体を選択します(厳密に、D3~D6を選択でも構いません)。
すると、下記のようにD列が選択されている表示になります。
次に置換を行いますが、置換は「ホーム」タブより編集項目の「検索と選択」→「置換」より選択します。
なお、ショートカットキーとして、「Ctrl+H」キーでも同様の操作が可能です。
「置換」を選択すると、下記の「検索と置換」が表示されます。
表示されたら、「検索する文字列」に「東京都」を入れ、「置換後の文字列」には「何も入れない」ように設定し、「すべて置換」をクリックします。
このようにすることで、「東京都」という文字列が「何もない」状態へと「すべて置換」される、すなわち「東京都という文字を削除する」ということになります。
この方法により、大量のデータからでも一瞬で特定の文字列を削除することができます。
ただし、この方法は元のデータが直接変更されてしまうため、作業をする時には、きちんと処理範囲が適切であるかを確認の上で行うようにしてください。
エクセルで特定の文字を一括で消す・削除する方法2【SUBSTITUTE関数】
この方法は、元のデータを保持しつつ、関数を使って特定文字を削除した結果を別のセルに表示するというものです。
【置換】で行ったような「元データが変更されてしまう」という問題は解消されます。
例えば、B列に「03-0000-0000」といった電話番号データが入力されていて、B列にハイフンを削除した「0300000000」を表示したい場合、SUBSTITUTE関数を活用していきます。
上記の図では、例えばF3セルには、「=SUBSTITUTE(D3,”-“,””)」と入力します。
それでは、SUBSTITUTE関数について説明します。
「SUBSTITUTE()」関数は、指定したセルの中の特定文字を別の文字に置き換える関数です。
・第1引数:対象のセル(D3)
・第2引数:削除したい文字(”-“)
・第3引数:置換後の文字(””は空文字、つまり削除)
この数式を他のセル(すなわちF4~F6)にもコピーすることで、ハイフンを削除した結果をF列に表示できます。
※ちなみに、一つ目では直接データを変更しましたが、二つ目と同様に関数を使うことで、元データの安全性を確保することも可能です。
ただし、この方法の場合、複数の文字を同時に削除したい場合は、SUBSTITUTE関数を入れ子にする(SUBSTITUTE関数の中にSUBSTITUTE関数を入れる)必要があるため、数式が複雑になることに注意しましょう。
エクセルで特定の文字を一括で消す・削除する方法3【マクロ機能】
次に紹介する方法が、最も柔軟で自動化できる方法となりますが、VBAマクロという高度な機能を使用します。
D列に様々な不要文字が混入したデータがあり、これらを一括で削除したい場合、VBAマクロを使用しますが、これは、「複数の削除条件を一度に処理する」というものです。
例えば下記のような場合に、「株式会社」「有限会社」を一括して削除したいとします。
先ほどまでの方法を駆使することで処理することも可能ですが、複数回の処理が必要になります。
もしもさらにもっと処理するパターン数が増えた時には、それだけ手をかける必要が出てきます。
その際、一括で処理することができるのが、VBAを使った方法となります。
まず、「Alt+F11」キーを押してVBAエディタを開きます。
(「開発」タブからVisual Basicを選択でも同じです。「開発」タブが表示されていない場合は、「ファイル」→「オプション」→「リボンのユーザー設定」より「開発」にチェックを入れて「OK」を選択すれば新たに「開発」タブが表示されます。)
次に、「挿入」タブより「標準モジュール」を選択します。
真っ白なウィンドウが表示されますので、そこに以下のコードを入力してください。
なお、「‘」の文はグレー表示になっていますが、これらの文は解説となっているだけですので、実際の処理とは無関係です。参考までに目を通してみてください。
先ほど、「複数の削除条件を一度に処理する」と書きましたが、このマクロの特徴は、配列に登録した複数の文字列を一度に削除できることです。
では、どの範囲の文字列を対象とするかについてですが、今回のVBAコードでは「Selection」という文字を記載しています。
その説明文には、「選択されている範囲の~」とあります。
よって、手動で選択した範囲において処理を行うように設定しています。
そのため、VBAコードを実行する前に、予め下記の図のように削除対象とするセル範囲を選択しておきます。
選択したら、VBAを実行しますが、実行するには、「書式」タブすぐ下の「▶」ボタンをクリックします。
実行が完了すると、下記の表示が出ますので、「OK」をクリックしてください。
改めて、実行後のセル範囲を見てみると、「株式会社」「有限会社」が消えているのが確認できます。
この方法を使用することで、複雑な削除条件でも一度に処理でき、作業効率を大幅に向上させることができます。
まとめ エクセルで特定の文字を一括で消す・削除する方法
ここまでエクセルで特定の文字を一括で消す・削除する方法について解説してきました。
それぞれの方法を理解し、業務に役立てていきましょう。