すべての空白を削除する
さて。このSUBSTITUTE関数。前ページでは単体で使用する方法を紹介しました。他の関数などと組み合わせることで様々な利用法が考えられますが、ここでは「複数のSUBSTITUTE関数を組み合わせる」という組み合わせ術を紹介します。次のサンプルをご覧下さい。セルに入力されている文字列内には「空白」が含まれています。この空白を削除することを考えます。
この空白を取り除くために、SUBSTITUTE関数を使います。
検索文字列に「" "」、置換文字列に「""」を指定します。「""」は「長さ0の文字列」を表すので、結果的に空白が取り除かれた形になります。
おや?まだ空白が取り切れていません・・。よく見ると、残っている空白の文字幅は、他の文字列と比べて狭いようです。実は、このセルには「全角の空白」と「半角の空白」が混じっていたのです。
つまり、SUBSTITUTE関数で置き換えたい文字列が2種類(「全角の空白」と「半角の空白」)あるということです。そこで、次のようにSUBSTITUTE関数を組み合わせます。
1つ目の検索文字列(ここでは全角の空白)を置き換えたら、2つ目の検索文字列(ここでは半角の空白)は、「1つ目の置き換えた結果」に対して置き換え処理を行う、ということです。なお、文字列内に1つ目の検索文字列がなかった場合、置き換えは発生しないので、そのままの文字列が2つ目の置き換え処理の対象となります。
結果は次の通り。全角・半角ともに空白が削除されました。
なお、Excel2003までは、関数の入れ子(ネスト)は7個まで可能です。したがって、SUBSTITUTE関数を組み合わせて文字列を置き換えることができるのは7個までです。8個以上の文字列を置き換えたい場合は、7個単位に分けて別セルで処理します。
※Excel2007から、関数のネストは64個(!)に拡張されています。