
- セル内の文字列を○文字目~○文字目まで抽出したい
- 特定の文字まで文字列を抽出したい
- 特定の文字以降を抽出したい
このようなお悩みをお持ちですか?
この記事を読むことで、これらすべてが実現できます。
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の力を借りることで、一瞬で文字列抽出を終わらせることが可能です。
さらなる時短を手に入れたい場合は、ご参考ください。
これらの記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!