【Excel】文字列を抽出する方法まとめ|関数・便利ワザを徹底解説

スポンサードリンク
Excel
見本
  • セル内の文字列を○文字目~○文字目まで抽出したい
  • 特定の文字まで文字列を抽出したい
  • 特定の文字以降を抽出したい

このようなお悩みをお持ちですか?
この記事を読むことで、これらすべてが実現できます。
Excel初心者でも理解しやすいように、できるだけわかりやすく解説いたします。

-著者情報-
名前:Utatane
Excel使用歴:15年以上
ひとこと:初心者だった当時に戻った気持ちになって解説いたします

※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。

実演パソコンのスペック(ソフトやバージョンによっては、表示や結果が異なる場合があります)

  • OS:Windows11 Home 64bit
  • Excel:Microsoft Office Home and Business 2021
スポンサードリンク

Excelで文字列を抽出する方法

Excelで文字列を抽出するには、「位置」を指定する方法と、「文字」を指定する方法があります。
まずは「位置」を指定する方法を見ていきましょう。

特定位置の文字列を抽出

特定位置の文字列を抽出するには、下記の関数を使う方法があります。

  • LEFT関数(左から特定位置までの文字列を抽出)
  • MID関数(特定位置~特定位置までの文字列を抽出)
  • RIGHT関数(右から特定位置までの文字列を抽出)

LEFT関数

LEFT関数は、左から○文字分の文字列を抽出することができます。
第一引数に文字列(セルを参照)、第二引数に抽出する文字数を指定します。

=LEFT(セル, 文字数)

上図は、A1セルの文字列を3文字分抽出した例です。

MID関数

MID関数は、左から○文字目~○文字分を抽出することができます。
第一引数に文字列(セルを参照)、第二引数に開始位置、第三引数に抽出する文字数を指定します。

=MID(セル, 開始位置, 文字数)

上図は、A1セルの文字列を4文字目~4文字分抽出した例です。

RIGHT関数

RIGHT関数は、右から○文字分を抽出することができます。
第一引数に文字列(セルを参照)、第二引数に抽出する文字数を指定します。

=RIGHT(セル, 文字数)

特定文字を基準に文字列を抽出

ここからは、特定の文字を基準に文字列を抽出する方法を解説いたします。
例えば「A01-2345B」の「-(ハイフン)」まで(A01)を抽出したい場合などです。

LEFT&FIND

LEFT関数とFIND関数を連携させることで、特定文字までの文字列を抽出することができます。

=LEFT(セル, FIND(特定文字, セル)-1)

FINDは左から特定文字までの文字数を返してくれる関数です。
第一引数には特定文字を、第二引数には文字列が入ったセルを指定します。

今回の場合は、「-」までが4文字なので、FIND関数が4を返します。

=LEFT(A1, FIND("-", A1)-1)
 ↓
=LEFT(A1, 4-1)
 ↓
=LEFT(A1, 3)

「-」を含んでしまっているので、最後に「-1」して「-」以外を抽出します。
「-」を残したい場合は、最後の「-1」は必要ありません。

RIGHT&FIND

特定の文字以降を抽出するには、RIGHT関数とFIND関数を使うのですが、少し工夫が必要です。
なぜなら、FIND関数は左から特定文字までの文字数を返すため、RIGHT関数とは相性が悪いです。
結論から書きますが、下記のように入力することで解決します。

=RIGHT(A1, LEN(A1) - FIND("-", A1))

LENは文字列の文字数を返してくれる関数です。
引数にA1セルを指定することで、全体の文字数(9)を返してくれます。
[全体の文字列(9)] ー [左から「-」までの文字数(4)] = 右からの文字数(5)が算出されます。

=RIGHT(A1, LEN(A1) - FIND("-", A1))
 ↓
=RIGHT(A1, 9 - FIND("-", A1))
 ↓
=RIGHT(A1, 9 - 4)
 ↓
=RIGHT(A1, 5)

区切り位置

区切り位置機能を使うことでも文字列を抽出することができます。

抽出したい文字列が入ったセルを選択したら、
上部メニューの「データ」「区切り位置」をクリックします。

「区切り位置指定ウィザード」が開きますので、「次へ」をクリックします。

「区切り文字」は「その他」のみにチェックを入れ、「-」を入力します。
すると画面下側にプレビューが表示されるので、確認して「次へ」をクリックします。

(表示形式に指定がある場合はチェックを変更し、)完了をクリックします。

「-」を基準にして、文字列が分割されました。

元の文字列が上書きされてしまいますので注意してください。

置換機能

検索の置換機能でも文字列を抽出することができます。

抽出したい文字列が入ったセルを範囲選択したら、
上部メニューの「ホーム」「検索と選択」「置換」をクリックします。

1つのセルを選択したまま進めてしまうと、シート全体に適用されてしまいます。
空のセルを含めてもいいので、範囲選択するのが安全です。

検索欄に「-*」と入力することで、「-」以降を削除(「-」までの文字列を抽出)することができます。
置換欄には何も入力する必要がありません。

元の文字列が削除されてしまいますので注意してください。

「-」を残したい場合は、置換欄に「-」を入力してください。

「-」以降を抽出したい場合は、検索欄に「*-」と入力してください。

スポンサードリンク

最後に

Excelで文字列を抽出する方法について解説いたしました。

当ブログでは、VBAマクロやPythonなど、時間を生み出すプログラミング術を公開しております。
少し難易度はあがりますが、VBA(マクロ)を使用することで、文字列抽出を自動で行うことができます。

また、さらに難易度は上がりますが、Pythonの力を借りることで、一瞬で文字列抽出を終わらせることが可能です。

さらなる時短を手に入れたい場合は、ご参考ください。

これらの記事がわかりやすいと感じた方は、他の記事も読んでいってください。

最後までお読みいただき、ありがとうございました。がんばってください!

タイトルとURLをコピーしました