文字列操作関数を使って
住所録のデータを細かく整理する


 文字列操作関数は、文字列の結合、抽出、変換、置換、削除等を行なうことができる関数です。まず今回は、この関数で文字列の結合や分散を行なってみましょう。たとえば2つの住所を1つにまとめたいときはCONCATENATE関数を利用します。この関数は、複数のセルの文字列を1つのセルに結合し表示してくれます。ここでは、数値を半角でそろえるために、ASC関数を利用し、ひらがなや漢字以外の文字をすべて半角にそろえています。また、文字感のスペースをそろえてくれるTRIM関数、指定した文字数ぶん、文字を抽出してくれるLEFT、RIGHT、MID関数の使い方を習得してみましょう。LEFT関数は、左側から指定した文字数ぶんの文字列を抽出し、RIGHT関数は右側から、MID関数は任意の位置から抽出してくれます。また、検索文字の位置を求めてくれるFIND関数を組み合わせると、式をコピーして利用することも可能になるので使いこなせるようにしましょう。

今月の関数





文字列から余分なスペースを削除する
TRIM関数
書式 =TRIM( )
全角や半角のスペースがそれぞれ続けて2つ以上ある場合、TRIM関数を利用すると全角や半角のスペースを1つだけにすることができる。スペースのばらつきをなくし、文字列をきれいに整えたいときに便利だ。


複数の文字列を結合して1つの文字列にまとめる
CONCATENATE関数
書式 =CONCATENATE(文字列1[,文字列2])
別セルに表示されたマンション・ビル名を住所と同じセルに表示させたいときなどに便利なのがCONCATENATE関数。これで複数のセルの文字列を1つの文字列として結合してくれる。ここではさらに数字などを半角にするASC関数を使っている。


指定された文字列を別の文字列のなかで検索
FIND関数
書式 =FIND(検索文字列,対象[,開始位置])
FIND関数は検索する文字列が何番目にあるかを求めてくれる。ここでは電話番号の「-」が出てくる位置を求め、それと指定された文字数を左側から取り出すLEFT関数を使い「市外局番」だけを抽出している。


1 TRIM関数でスペースを半角1つにそろえる

顧客名簿の会社名の文字間をすべて半角スペースに統一する。(1)会社名を求めるセルB17を選び、(2)[関数の貼り付け] ボタンをクリック、文字列操作関数から [TRIM] を選択。(3)文字列にB5を選択し、[OK] ボタンをクリック。オートフィルで他のセルにコピー。





2 文字列を結合して1つにまとめる

(1)住所を結合させるセルD17を選択し、(2)[関数の貼り付け] ボタンでCONCATENATE関数を選択。数字とカタカナを半角にしたいので、[文字列1] で、(3)関数名ボックスの下向き三角を押し、[その他の関数]→[ASC] 関数を選び、「文字列」に(4)C5を選び、数式バーの(5)の位置をクリック、CONCATENATE関数に戻り、[文字列2] も同じように設定。



D17のセルに入った式は
=CONCATENATE(ASC(C5),ASC(E5))


演算子を利用して文字列を結合するには
文字列演算子である [&] を利用すると、CONCATENATE関数を利用しなくても文字列を結合できる。住所を表示させたいセルD17を選択、数式バー左横「=」をクリック、C5を選択し、キーボードから [&] を入力、E5を選択、[Enter]。ここでは「=C5&E5」という式で結合できた。



3 文字列を複数セルに分ける

A. LEFT+FIND関数で市外局番のみ抽出
(1)市外局番を表示させたいセルF17を選択、(2)[関数の貼り付け] でLEFT関数を選び、(3)「文字列」に(4)F5を選ぶ、(5)「文字数」で(6)の三角をクリックし [その他の関数]→[FIND] 関数を選択。FIND関数のダイアログボックスが表示。(7)「検索文字列」は、式をコピーすることを考えてすべての文字列に共通の文字を指定するため、数値ではなく 「"-"」を指定。


                    
「対象は」(8)F5を選択、「開始位置」は、(9)「1」と入力、数式バーをクリックして [LEFT] 関数へ戻る。すると、文字数には [-] までの文字数が表示される。しかしここでは市外局番は [-] を除いた数値を表示させたいので1を引く。



F17のセルに入った式は
=LEFT(F5,FIND("-",F5)-1)


B. RIGHT+LEN+FIND関数で市内局番のみ抽出
(1)市外局番を表示させたいセルG17を選択、(2)を押し、RIGHT関数を選択選択。(3)「文字列」にはF5を選び、文字数ボックスにカーソルを置いたまま(4)を押し、文字列操作関数の [LEN] を選ぶ。LENで文字数を求め、次にFINDで [-] が最初に現れる位置を求め、文字数から引く。


                    
関数ボックスから [FIND] 関数を選び、(6)「検索文字列」には ["-"] と入力、(7)「対象」にはF5を選択、(8)「開始位置」は [1] と入力し、[OK] ボタンをクリック。なお、ここでは市外局番を()で囲むため、F17のセルで右クリック→[セルの表示形式]→[表示形式] の「ユーザー定義」で、(@)と入力しておくと自動的に数値に()がつけられる。



G17のセルに入った式は
=RIGHT(F5,LEN(F5)-FIND("-",F5))



文字列を検索するFINDとSEARCHを使い分ける

FIND関数
検索文字列の位置を求める関数には、FIND関数のほかにSEARCH関数がある。それぞれの違いについて理解しよう。FIND関数は、検索文字列に任意の文字列を表わす「*」(ワイルドカード)を使用できないが、英字の大文字と小文字を区別することができる。電話番号のように半角数字のみの場合はFIND関数が便利

SEARCH関数
SEARCH関数は検索文字列にワイルドカード文字を使用できるが、英字の大文字と小文字が区別できない。ワイルドカード文字のみを検索文字列として指定するときはワイルドカード文字の前にチルダ [ ~ ] を入力しなければならない。住所など漢字と数字が交じる場合にはSEARCH関数が便利。