関数 EXCEL&VBA

EXCELで「文字列の置換・削除」をする方法(目的別)

いまさらですが Excel は表計算ソフトです。
とはいえ、Excelを使って資料を作成する場合には数字だけでなく、多くのテキスト(文字列)を扱うことになります。

そこで重要になるのが 文字列のコントロール です。

文字列の中に含まれる 余分な スペースや特定の文字を削除 したり、特定の 文字列を置換置き換え)したりする テクニックを身につけていると資料の仕上がりが違います。

そこで今回の h1r0-style.net では、Excelで文字の置換・削除をする方法について解説します。



スペースや特定の文字を削除する

セルに含まれる余分なスペースを削除する

ウェブページなどからテキストをコピペしてセルに張り付けた場合など、セル内の文字列の「前後」や「単語間」に余計なスペースが含まれている場合があります。


上の図は、A列の文字列の前後と単語間にスペースが含まれている状態です。

セルA2:「あ」の前、「う」と「え」の間、「お」の後ろにそれぞれ全角スペースが2つ入っています。
セルA3:「A」の前、「B」と「C」の間、「D」と「E」の間、「G」の後ろにそれぞれ半角スペースがランダムに複数入っています。

この状態で資料を作成するのは美しくありませんので、余分なスペースを削除します。
そんな時に便利な関数が TRIM関数 です。

TRIM関数

TRIM関数とは、単語間のスペースを1つずつ残して余分なスペースを削除する関数 です。
では、上の図のセルB2とB3にそれぞれ TRIM関数を入れてA列の文字列の変化を見てみましょう。

セルB2に入る数式は;

=TRIM(A2)

これだけです。

するとセルB2には

ご覧のとおり「あいう えお」となり、「う」と「え」の間のスペースを1つだけ残し それ以外の余分なスペースはすべて削除できました。
同様に、セルB3にも;

=TRIM(A3)

と入力して余分なスペースを削除します。
※セルB2のセルを下にドラッグしてコピーすると簡単です。

セルB2に入っているスペースは「半角」ですが、TRIM関数の動きは全く同じ。
単語間のスペースを1つだけ残してあとは削除します。




セルに含まれるスペースを全て削除する

今度は、単語間のスペースなど無視! スペースはすべて削除するケースです。
こちらは SUBSTITUTE関数 を使うと便利です。

SUBSTITUTE関数

SUBSTITUTE関数とは、文字列中の指定した文字を新しい文字で置き換える関数 で;

=SUBSTITUTE(文字列, 検索文字列, 置換文字列)

のように表されます。
そう、置き換え(置換)の関数なのです。

この置換の SUBSTITUTE関数スペースの削除 に応用します。この応用はスペースに限らず「特定の文字の削除」に使えるので覚えておくと便利です。

先ほどの表を使います。

セルB2に;

=SUBSTITUTE(A2, " ", "" )

と入力すると、スペースがすべて削除("" に置換)されます。

セルA2には全角スペースと半角スペースを混在させてあります。
上の数式では全角スペースしか削除できないので、その場合は「入れ子」にして SUBSTITUTE関数 を繰り返します。

そうすることで上図のように全てのスペースを削除できます。

特定の文字の削除への応用

上で述べた方法は、スペースを文字に置き換えれば 特定の文字の削除 に応用できます。

SUBSTITUTE関数の「検索文字列」の部分を、削除したい特定の文字に置き換えます。
「置換文字列」の部分は "" にしておけば特定の文字を削除(≒潰す)ことができます。


文字列の置換

今度は文字列の置き換え(置換)です。
これはやりたいことによって使用する関数が違います。

「特定の位置」にある文字列を置換する

さきほど置換の関数として SUBSTITUTE関数 を紹介しましたが、これは置き換える対象の文字がわかっている場合に有効です。

では、「セル〇〇に表示される文字の左から4番目と5番目の2文字を『売上』に変更する」のように、セルに表示される文字がわからないけれど「特定の決まった位置」に表示される場合はどうでしょう?

このような場合に有効な関数が、REPLACE関数 です。

REPLACE関数

REPLACE関数とは、文字列中の指定した位置の文字列を置き換える関数で;

=REPLACE(文字列, 開始位置, 文字数, 置換文字列 )

のように表されます。

下の例は、組織変更によって A列の部署名が全て変更になるというケースです。
セルB2に;

=REPLACE( A2, 1, 2, "業務統括" )

と入力します。
この意味は「セルA2の1文字目から開始して2文字分を『業務統括』に置換する」ということです。

結果は上の画像のとおり、A列の先頭2文字分が置換されて、B列は全て「業務統括」課になりました。

「不特定の位置」にある「特定の文字」を置き換える

次は、どこに発生するかわからない「特定の文字列」を置換するケースです。
なんだか難しく書いてしまいましたが、要は「場所にかかわらずとにかく指定の文字を置換する」ということです。

これは前述の、SUBSTITUTE関数 を使用します。
さきほどは、スペースを削除するために関数を使用しましたが、例えば;

=SUBSTITUTE(A2, "人間", "スーパーマン" )

と数式を記述すれば、セルA2の中にある「人間」という文字をすべて「スーパーマン」に置き換えます。


郵便番号にハイフンを挿入する・ハイフンを削除する

最後はおまけですが、REPLACE関数の応用編です。

「1000004」などのように郵便番号がハイフン抜きで登録されることはよくあります。
これを、従来の3ケタ目と4ケタ目の間にハイフンを挟むケースです。

この場合は;

=REPLACE ( A2, 4, 0, "-" )

と数式を入れます。
ポイントは、「4ケタ目からゼロ文字を」の部分(赤字部分)です。

すると簡単に4文字目にハイフンが挿入されます。

逆に、ハイフンが入力されている郵便番号からハイフンを削除するのは簡単です。
前述の REPLACE関数 や SUBSTITUTE関数 を使って、例えば;

=SUBSTITUTE ( 対象セル, "-", "" )

のようにハイフンを削除します。

以上、EXCELで「文字列の置換・削除」をする方法 パターン別まとめでした。

関連記事・広告



併せて読んでおくとさらに便利

EXCELの行や列を折りたたむ「グループ化」をマスターしよう
グループ化
行や列を折りたたむ「グループ化」の機能について解説。たたむ・展開するの切替えはワンタッチで簡単!この グループ化 で見た目もすっきり、そして機能的な作表に挑戦しましょう。

EXCELの書式記号 を理解して「ユーザー定義」を使いこなそう!
書式記号・ユーザー定義
Excelでちょっと特殊な書式を設定したいときには「ユーザー定義」の機能を使うと便利です。 今回は「書式記号」について解説します。「なんとなく」で使っている人も少なくないのでは?

エクセルの重複データに色を付ける|「ダブり」チェック
条件付き書式・COUNTIF関数
エクセルで重複するデータに色を付ける方法を解説します。Excelでダブりチェックをする方法はいくつかありますが簡単に設定できるのでぜひ挑戦してみましょう。

オートフィルオプションの表示・非表示の切り替え|Excelのキホン
オートフィル
「オートフィルオプション」、使いこなしていますか?Excelを使っていると、セルの値や数式を下方向や横方向にコピー(オートフィル)する機会が頻繁に訪れますが、こんな時に役立つのが「オートフィルオプション」です。

エクセル 切り捨て・切り上げ・四捨五入の関数の使い分け
INT関数・ROUND関数・TRUNC関数
切り捨て・切り上げ・四捨五入を自在に使い分けるための 便利な関数 について解説。エクセルで 小数点以下の数値 をあつかうときに必要なのが、切り捨て・切り上げ・四捨五入 の処理です。

※その他関連記事は、このページの下の方にもあります。




-関数, EXCEL&VBA
-, , , ,