
エクセルで大量にデータを扱う人にとって、欠かせないのが文字列関数です。今回はエクセルの文字列関数の中から、よく使う、抽出・検索・置換・結合の文字列関数を、具体例を挙げながらご紹介します。
文字列抽出:LEFT関数・MID関数・RIGHT関数
文字列の中から特定の文字数を抽出する関数です。LEFTは文字列の左端から特定の文字数を抽出、RIGHTは文字列の右端から特定の文字数を、MIDは文字列の任意の場所から特定の文字数を抽出します。
関数の書き方は、以下の通りです。
=LEFT(セル番地,文字数)
セル番地は文字列があるセル、文字数は左から何文字必要かを入力します。この場合、半角、全角共に1文字に数えます。文字数を省略すると左から1文字目になります。
=MID(セル番地,開始位置,文字数)
セル番地は文字列があるセル、開始位置は抽出位置を左からの文字数で指定、文字数は抽出開始位置から何文字必要かを入力します。この場合も、半角、全角共に1文字に数えます。文字数を省略すると開始位置を起点に左から1文字目になります。
=RIGHT(セル番地,文字数)
セル番地は文字列があるセル、文字数は右から何文字必要かを入力します。同じく、半角、全角共に1文字に数えます。文字数を省略すると右から1文字になります。
文字列抽出関数(LEFT関数、MID関数、RIGHT関数)の具体例
ここで具体的な使い方を紹介しましょう。顧客番号から登録年、登録地域、顧客種別を抽出しました。前提の顧客番号ですが、左から4桁が登録年、次の2桁が登録地域、最後の1桁が顧客種別です。
1) LEFT関数例:顧客番号より登録年のみ抽出しています。
セルC2に関数 「=LEFT(A2,4)」
※セルA2の顧客番号文字列の左から4文字分を抽出。
2)MID関数例:顧客番号より登録地域のみ抽出しています。
セルD2に関数 「=MID(A2,5,2)」
※セルA2の顧客番号文字列の左から5文字目より2文字分を抽出。
3)RIGHT関数例:顧客番号より顧客種別のみ抽出しています。
セルE2に関数 「=RIGHT(A2,1)」
※セルA2の顧客番号文字列の右から1文字分を抽出。
文字列検索:FIND関数・SEARCH関数
FIND関数とSEARCH関数ともに目的は同じで、特定のセルの文字列から特定の文字の位置を検索する関数です。
FIND関数とSEARCH関数の使い分けですが、FIND関数は、検索文字の大文字小文字の区別があり、アスタリスクなどのワイルドカードが使えないため、精度の高い検索に利用します。一方SEARCH関数には大文字小文字の区別がなく、ワイルドカードが使えますので曖昧検索に利用できます。
関数の書き方は、以下の通りです。
=FIND(“検索文字列”,セル番地,開始位置)
検索文字列は検索したい文字で「” ”」で囲みます。セル番地は検索対象の文字列があるセル番地、開始位置は文字列の左から何番目の文字から検索するかを入力します(省略すると左から1文字目から検索)。
=SEARCH(“検索文字列”,セル番地,開始位置)
検索文字列は検索したい文字で「” ”」で囲みます。セル番地は検索対象の文字列があるセル番地、開始位置は文字列の左から何番目の文字から検索するかを入力します(省略すると1文字目から検索)。
2つの関数の違いがわかる利用例を示しましょう。
セルB2にFIND関数 「=FIND(“a”,A2)」
セルC2にSEARCH関数 「=SEARCH(“a”,A2)」
いずれもセルA2の文字列 「I like American Football.」から最初に”a”という文字がある位置を検索しています。
FIND関数の場合は大文字小文字の区別がありますので、14文字目の”a”(小文字のa ※スペースも1文字としてカウントします。)が、SEARCH関数の場合は大文字小文字の区別がないので、8文字目の”A”が検索結果として表示されます。
文字列置換:SUBSTITUTE関数
SUBSTITUTE関数は文字列の中から特定の文字を検索し別の文字に置き換える関数です。 関数の書き方は、以下の通りです。
=SUBSTITUTE(セル番地, 検索文字列, 置換文字列)
セル番地は対象文字列のあるセル、検索文字は「” ”」で囲み、置換したい文字も同様に「” ”」で囲んで入力します。
利用例をあげましょう。例えば、顧客名簿の担当営業所の名称が変わったという場合です。大阪心斎橋営業所(旧)→大阪なんば営業所(新)
セルB2にSUBSTITUTE関数式 =SUBSTITUTE(A2,”心斎橋”,”なんば”)が入っています。同様に B3,B4,B5にも関数式が入っています。セルB2 B4には検索文字列 ”心斎橋” がありますので、”なんば” に置き換わっています。
文字列結合:CONCATENATE関数
文字列と文字列を結合し一つの文字列にするには文字列結合演算子の「&」アンパサンド・アンド記号を使うのが一般的ですが、CONCATENATE関数を使っても同じ事が出来ます。
上記の例では姓と名を結合して姓名としています。 文字列結合演算子の「&」アンパサンド・アンド記号を使った場合、セルC2は =A2&B2 となります。簡単な応用例として、姓と名の間に半角スペースを空けたい場合は、=A2&” ”&B2 とすればOKです。
同じ事をCONCATENATE関数でやってみます。基本的な関数式の書き方は、「=CONCATENATE(文字列1,文字列2,…)」となります。
セルC2は単純にA2の姓とB2の名を結合した例です。関数式は「=CONCATENATE(A2,B2)」です。
C3はA3の姓とB3の名の間に半角スペースを空け結合した例です。関数式は「=CONCATENATE(A3,” “,B3)」です。
C4はA4の姓とB4結合し、姓と名の間に改行を入れ2行とした例です。関数式は「=CONCATENATE(A4,CHAR(10),B4)」となります。
A4とB4の名の間のCHAR(10)は、改行コードです。
まとめ
今回紹介した文字列関数を使えば会社の大量の顧客データの中から特定の地域の顧客を抽出、検索してDMを発行したり、営業担当者、担当部署等が変更になった際に、新しい担当に、抽出、検索、置換の関数を使って変更したりと、大量のデータも短時間で効率よく利用したり加工したりすることが出来ます。ぜひ活用して効率よく業務をこなしましょう。