この記事では、RIGHT、LEFT、MID関数の使い方や、FIND関数をもちいた応用例について詳しく解説します。文字列の中から任意の文字を抽出する方法や、カンマなどの区切り文字で分類されたリストから任意の文字を抽出する方法をご紹介します。
RIGHT関数|右側の文字取得
RIGHT関数は、文字列の右端から指定した数の文字を返す関数です。
=RIGHT(文字列, 文字数)
- 文字列: 右端から文字を取得したい文字列またはセル参照
- 文字数: 取得したい文字数
例えば、セルA1に「Excel」という文字列がある場合、「=RIGHT(A1, 2)」は「el」を返します。
LEFT関数|左側の文字取得
LEFT関数は、文字列の左端から指定した数の文字を返す関数です。
=LEFT(文字列, 文字数)
- 文字列: 左端から文字を取得したい文字列またはセル参照
- 文字数: 取得したい文字数
例えば、セルA1に「Excel」という文字列がある場合、「=LEFT(A1, 2)」は「Ex」を返します。
MID関数|中央の文字取得
MID関数は、文字列の指定した位置から指定した数の文字を返す関数です。
=MID(文字列, 開始位置, 文字数)
- 文字列: 部分文字列を取得したい文字列またはセル参照
- 開始位置: 取得を開始する位置(「1」から開始)
- 文字数: 取得したい文字数
例えば、セルA1に「Excel」という文字列がある場合、「=MID(A1, 2, 3)」は「xce」を返します。
スポンサーリンク
MID関数の応用|任意範囲の文字取得
文字数が変動する場合において、「区切り文字」を使って任意の範囲から文字列を取り出す方法について説明します。この方法では、「区切り文字」が規則的に設定されてあれば、文字数が変動する場合であっても任意の範囲から文字列を取得することができます。
こちらでは、FIND関数とMID関数を組み合わせて使用する方法をご紹介します。
例えば、セルA1に「Word,Excel,PowerPoint,Outlook」という文字列があるとします。この文字列から2番目の「Excel」を抽出する方法を見てみましょう。
前提知識|FIND関数の確認
まずは事前知識として、FIND関数の構文を確認しておきましょう。FIND関数は、文字列内の特定の文字の位置を検索するための関数です。
=FIND(検索文字列, 対象文字列, 開始位置)
- 検索文字列: 検索する文字列
- 対象文字列: 検索対象の文字列
- 開始位置: 検索を開始する位置(省略した場合は「1」が自動設定)
例えば、セルA1に「Excel」という文字列がある場合、「=FIND(“e”, A1)」は「4」を返します。
基本的な方法|FIND関数の使用
FIND関数を使用すれば、任意の範囲の文字列を抽出することができます。
例えば、カンマで区切られた文字列の中から「2番目の文字範囲」を抽出するためには、以下のように記述します。
=MID(A1, FIND(“,”, A1) + 1, FIND(“,”, A1, FIND(“,”, A1) + 1) – FIND(“,”, A1) – 1)
この関数式は、文字列「Excel」を抽出します。
具体的な方法は以下のとおりです。
まず、FIND関数を使って区切り文字(カンマ)の位置を見つけます。
- 1番目のカンマ位置: =FIND(“,”, A1)
- 2番目のカンマ位置: =FIND(“,”, A1, FIND(“,”, A1) + 1)
次に、MID関数を使って文字列を抽出します。
- 開始位置: 「1番目のカンマ位置」 + 1
- 文字数: 「2番目のカンマ位置」 – 「1番目のカンマ位置」 – 1
実践的な方法|FIND、CHAR、SUBSTITUTE関数の使用
先ほどご紹介したFIND関数とMID関数を組み合わせる方法では、抽出対象の位置によって関数式が段階的に長くなるため、抽出対象によっては可読性が低くなる問題が生じます。
- 1番目のカンマ位置::=FIND(“,”, A1)
- 2番目のカンマ位置::=FIND(“,”, A1, FIND(“,”, A1) + 1)
- 3番目のカンマ位置: =FIND(“,”, A1, FIND(“,”, A1, FIND(“,”, A1) + 1) + 1)
こういった問題に対処するために、さらにCHAR関数とSUBSTITUTE関数を組み合わせて解決する方法があります。
- 1番目のカンマ位置::=FIND(“,”, A1)
- 2番目のカンマ位置::= FIND(CHAR(9), SUBSTITUTE(A1, “,”, CHAR(9), 2))
- 3番目のカンマ位置:= FIND(CHAR(9), SUBSTITUTE(A1, “,”, CHAR(9), 3))
例えば、先ほどの事例と同様にカンマで区切られた文字列の中から「2番目の文字範囲」を抽出するためには、以下のように記述します。
=MID(A1, FIND(“,”, A1) + 1, FIND(CHAR(9), SUBSTITUTE(A1, “,”, CHAR(9), 2)) – FIND(“,”, A1) – 1)
この数式は「Excel」を抽出します。
具体的な設定方法は以下のようになります。
まず、区切り文字(カンマ)の位置を見つけます。
- 1番目のカンマ位置: =FIND(“,”, A1)
- 2番目のカンマ位置: = FIND(CHAR(9), SUBSTITUTE(A1, “,”, CHAR(9), 2))
次に、MID関数を使って文字列を抽出します。
- 開始位置: 「1番目のカンマ位置」 + 1
- 文字数: 「2番目のカンマ位置」 – 「1番目のカンマ位置」 – 1
このようにして、セルA1 の中で1番目と2番目のカンマの間の文字列を抽出することができます。
スポンサーリンク
各関数の構文|CHAR関数とSUBSTITUTE関数
参考までに、本例で使用された関数の構文を確認しておきましょう。
CHAR関数
=CHAR(数値)
- 数値: 変換する文字を表す「1~255」の範囲内の数値を指定
以下は数値におうじた出力例です。
- 9: 水平タブ(HT:Horizontal Tab)
- 10: 改行(LF:Line Feed)
- 13: 行頭復帰(CR:Carriage Return)
- 32: スペース(Space)
SUBSTITUTE関数
=SUBSTITUTE(文字列, 検索文字列, 置換文字列, 置換対象)
- 文字列: 置換対象の文字列
- 検索文字列: 置換したい文字
- 置換文字列: 置換後の文字
- 置換対象: 置換対象の指定(省略した場合、すべての文字列が置換対象)
=SUBSTITUTE(A1,”A”,”B”,3)
例えば、上記の関数式では、セルA1の文字列の中から「A」を探して、3番目の「A」を「B」に置き換えます。
まとめ
RIGHT、LEFT、MID関数やFIND関数などを活用することによって、エクセルでの文字操作が効率的にできるようになります。今回ご紹介した方法をうまく取り入れて、データ分析の作業性を向上させていきましょう。
「特定したいカンマ位置」と「数式の数字」の対応関係を確認しておきましょう。例えば、「3番目のカンマ位置」を求める数式では、関数数式に数値「3」が使用されています。
実際に活用する際には、対応する位置関係にあわせて数式を設定しましょう。