Excelのセルに入力された商品コード、氏名、電話番号、メールアドレスなどから、必要な文字だけを取り出したい場面は少なくありません。
文字列の先頭から取り出すLEFT関数、末尾から取り出すRIGHT関数、途中の位置から取り出すMID関数を使うと、手作業でコピーや削除を繰り返さなくても、データを規則的に分割できます。
特に、コードの接頭辞、支店番号、日付部分、末尾の連番などを抽出する作業では、文字数と開始位置の考え方を理解することが重要です。
文字列を抽出するときの基本は、先頭ならLEFT関数、末尾ならRIGHT関数、途中ならMID関数です。
数式を入力したセルをオートフィルで下方向へコピーすれば、1行目を見出しとして残したまま、複数行のデータをまとめて処理できます。
この記事では、サンプルデータを使いながら、文字列抽出の数式、操作方法、エラーを防ぐコツまで順番に解説していきます。
LEFT・RIGHT・MID関数による文字列抽出

| A列 商品コード | B列 抽出例 |
|---|---|
| TKY-2026-00125 | TKY、00125、2026 |
| OSK-2026-00480 | OSK、00480、2026 |
それではまず、LEFT・RIGHT・MID関数を使い分ける基本について解説していきます。
文字列抽出では、どこから何文字取り出すかを先に決めることが最も大切です。
LEFT関数による先頭文字の抽出
LEFT関数は、セル内の文字列の左端、つまり先頭から指定した文字数だけを取り出す関数です。
構文はLEFT関数のあとに、対象セルと取り出す文字数を指定する形です。
=LEFT(A2,3)
この数式では、A2セルの商品コードTKY-2026-00125の左側から3文字を抽出するため、結果はTKYになります。
商品コードの支店名、社員番号の部署記号、郵便番号の先頭部分など、先頭側に一定の規則で情報が入っているデータに向いています。
数式中のA2は抽出元のセルであり、3は文字数です。
全角文字、半角英数字、記号は、通常のLEFT関数ではいずれも1文字として数えます。
ただし、表示上は同じように見える空白でも、半角スペースと全角スペースは別の文字として扱われるため、元データを確認しましょう。
RIGHT関数による末尾文字の抽出
RIGHT関数は、セル内の文字列の右端、つまり末尾から指定した文字数を取り出す関数です。
=RIGHT(A2,5)
A2セルがTKY-2026-00125なら、右端から5文字が返されるため、結果は00125です。
末尾に連番、枝番、拡張子、分類コードがある場合に利用しやすい関数です。
先頭の文字数が変わる可能性があっても、末尾の桁数が固定されていればRIGHT関数は安定して使えます。
たとえば、注文番号の末尾4桁だけを確認したい場合は、RIGHT関数で4文字を指定します。
数値のように見える00125も、セル内では文字列として扱うことで先頭の0を保ったまま取り出せます。
抽出結果を数値として計算に使う必要がある場合は、後からVALUE関数を組み合わせる方法もあります。
MID関数による途中文字の抽出
MID関数は、文字列の途中にある任意の位置から、指定した文字数を取り出す関数です。
=MID(A2,5,4)
A2セルのTKY-2026-00125では、5文字目から4文字を抽出するため、結果は2026になります。
MID関数では、対象セル、開始位置、文字数の順番で引数を設定します。
開始位置は左端を1として数える点が重要です。
TKY-2026-00125では、Tが1文字目、Kが2文字目、Yが3文字目、ハイフンが4文字目、2が5文字目になります。
ハイフンやスペースも1文字として数えるため、見た目だけで位置を判断せず、実際の文字列を確認することが失敗を減らすコツです。
【操作のポイント】途中の文字列を取り出す前に、区切り記号を含めた開始位置を紙やメモで数えると、MID関数の開始位置を設定しやすくなります。
LEFT関数による先頭文字列の取り出し
| A列 氏名コード | B列 部署コード |
|---|---|
| SAL-田中一郎 | =LEFT(A2,3) |
| DEV-佐藤花子 | =LEFT(A3,3) |
続いては、LEFT関数を入力して先頭の文字列を取り出す操作を確認していきます。
数式入力セルの選択
サンプルデータでは、A列に元の文字列があり、1行目には見出しが入力されているものとします。
抽出結果を表示したいB2セルをクリックして選択しましょう。
B1セルには部署コードなどの見出しを入力しておくと、後から列の用途を確認しやすくなります。
セルを選択したら、数式バーまたはセルに直接、LEFT関数の数式を入力します。
=LEFT(A2,3)
入力後にEnterキーを押すと、B2セルにはSALと表示されます。
数式の参照先は、結果を表示するB2ではなく、元データがあるA2である点に注意しましょう。

元データがA2ではなくC2にある場合は、数式も=LEFT(C2,3)のように参照先を変更します。
対象セルを間違えると、空白や別列の値が抽出されるため、数式バーでセル番地を確認する習慣が役立ちます。
オートフィルによる数式コピー
B2セルに正しい結果が表示されたら、同じ規則を下の行にも適用します。
B2セルを選択すると、右下に小さな四角形であるフィルハンドルが表示されます。
このフィルハンドルを下方向へドラッグすると、数式がコピーされます。
隣接するA列に連続データがある場合は、フィルハンドルをダブルクリックする方法も便利です。
ExcelはA列のデータが続く範囲を判断し、B列に数式を自動コピーします。
コピー後のB3セルでは、数式が=LEFT(A3,3)に自動調整されます。
これは相対参照と呼ばれる仕組みであり、行番号だけが各行に合わせて変化します。
数式をコピーした後は、数行分の結果を確認し、想定どおりの部署コードが抽出されているか確かめましょう。
文字数が不足する場合の表示
LEFT関数で指定した文字数よりも元の文字列が短い場合、Excelは存在する文字だけを返します。
たとえば、=LEFT(A2,5)と入力し、A2セルがABの場合、エラーではなくABが表示されます。
この性質は短いデータにも数式を適用できる利点ですが、入力漏れの発見が遅れる場合もあります。
部署コードは必ず3文字であるはずなのに、抽出結果が2文字なら、元データの登録ミスを疑う必要があります。
文字数を確認したいときはLEN関数を併用できます。
=LEN(A2)
LEN関数はセル内の文字数を返すため、データの長さをチェックする補助列として使えます。
【操作のポイント】LEFT関数の結果が短い場合は、関数の故障ではなく元データの文字数不足である可能性を確認しましょう。
RIGHT関数による末尾文字列の取り出し

| A列 注文番号 | B列 末尾連番 |
|---|---|
| ORD-2026-000381 | 000381 |
| ORD-2026-001052 | 001052 |
続いては、RIGHT関数で末尾の連番や固定桁のコードを抽出する方法を確認していきます。
固定桁の連番抽出
注文番号の末尾6桁が連番になっている場合は、B2セルに次の数式を入力します。
=RIGHT(A2,6)
A2セルのORD-2026-000381から、右端の000381だけを取り出せます。
この方法では、先頭のORDや年の部分が何文字であっても、末尾6桁というルールさえ変わらなければ対応できます。
RIGHT関数は、末尾側の桁数が固定されている管理番号を扱うときに特に有効です。
電話番号の末尾4桁、ファイル名の拡張子、会員番号の下位番号などにも応用できます。
ただし、ハイフンを含めて抽出したい場合は、そのハイフンも文字数に含めて指定します。
先頭のゼロを維持する設定
000381のように先頭が0の値は、見た目は数字でも、コードとして扱う場合は0を消さないことが必要です。
RIGHT関数の結果は文字列として返されるため、通常は000381の表示を維持できます。
一方、結果のセルに数値形式を設定したり、VALUE関数で数値へ変換したりすると、381のように先頭の0が消えることがあります。
商品番号や会員番号は計算対象ではなく識別子であることが多いため、文字列として保持する考え方が安全です。
表示形式だけで0を補う方法もありますが、元の値の意味を保ちたいなら、抽出結果をそのまま文字列として利用する方法が分かりやすいでしょう。
CSVファイルへ出力する予定がある場合も、先頭の0が失われないかを事前に確認してください。
可変長データへの対応
RIGHT関数は末尾から固定文字数を取り出すため、末尾の桁数が行ごとに異なるデータには注意が必要です。
たとえば、末尾にハイフン以降の文字列があり、その長さが行ごとに違う場合、RIGHT関数だけでは適切な範囲を決められません。
この場合は、FIND関数やSEARCH関数で区切り記号の位置を求め、LEN関数と組み合わせます。
=RIGHT(A2,LEN(A2)-FIND(“-“,A2))
この数式は、A2セル内で最初に出現するハイフンの後ろを抽出する考え方です。
ただし、ハイフンが複数ある商品コードでは、どのハイフンを基準にするかを慎重に設計する必要があります。
【操作のポイント】RIGHT関数に渡す文字数が固定でない場合は、LEN関数と区切り位置を求める関数を組み合わせて文字数を計算します。
MID関数による途中文字列の取り出し
| A列 管理コード | B列 年度 |
|---|---|
| TKY-2026-00125 | 2026 |
| NGY-2025-00987 | 2025 |
続いては、MID関数でコードの途中にある年度や分類情報を抽出する方法を確認していきます。
開始位置と文字数の指定
MID関数は、開始位置と取り出す文字数を別々に指定できるため、文字列の中央部分を扱う際に便利です。
年度が4文字目のハイフンの次、つまり5文字目から4桁で入力されている場合は、B2セルに次の数式を入力します。
=MID(A2,5,4)
開始位置の5は、A2セルの5文字目から抽出を始める指定です。
最後の4は、開始位置から4文字分を取り出す指定です。
MID関数では、開始位置を1文字ずらすだけで結果が変わるため、区切り記号を含む位置を正確に数える必要があります。
文字列の構造が固定されているなら、MID関数は短く分かりやすい数式になります。
支店コード3文字、ハイフン1文字、年度4文字、ハイフン1文字、連番5文字というように設計が決まっているデータでは、安定した抽出が可能です。
数式バーからの入力操作
抽出結果を表示するB2セルを選択し、数式バーの入力欄をクリックします。
先頭に等号を入力してからMIDと入力すると、Excelが関数候補を表示します。
MID関数を選ぶか、そのまま数式を最後まで入力してEnterキーを押しましょう。
数式バーでは、引数ごとに色分けされたセル参照を確認できるため、参照セルの間違いを見つけやすくなります。
入力後にB2セルへ2026が表示されたら、フィルハンドルを使って下の行へコピーします。
数式をオートフィルすると、B3ではA3が参照され、各行の年度が自動で抽出されます。
1行目が見出しなら、数式は必ず2行目から入力することが基本です。
Excel画面でのオートフィル操作
B
罫線
中央揃え
| A | B | C | |
|---|---|---|---|
| 1 | 管理コード | 年度 | |
| 2 | TKY-2026-00125 | 2026 | |
| 3 | NGY-2025-00987 | 2025 | |
| 4 | OSK-2024-00310 | 2024 |
このように、最初のB2セルだけにMID関数を入力し、セル右下のフィルハンドルを下へ引っ張ると、後続行へ数式をコピーできます。
行数が多いデータでは、B2セルのフィルハンドルをダブルクリックすると、隣のA列にデータがある最終行まで数式を反映できます。
途中に空白行があるとコピー範囲が途中で止まることがあるため、必要に応じてドラッグで範囲を指定しましょう。
【操作のポイント】数式をコピーした直後は、先頭行、途中行、最終行の3か所を確認し、開始位置と文字数がすべてのデータ形式に合っているかを確かめます。
区切り記号と関数の組み合わせ
| A列 メールアドレス | B列 抽出対象 |
|---|---|
| tanaka@example.co.jp | tanaka |
| sato@sample.jp | sato |
続いては、文字数が固定されないデータで、区切り記号を基準に文字列を抽出する方法を確認していきます。
FIND関数による記号位置の取得
FIND関数は、指定した文字がセル内の何文字目にあるかを返す関数です。
メールアドレスからアットマークより前の文字列を取り出す場合、まずアットマークの位置を求めます。
=FIND(“@”,A2)
A2セルがtanaka@example.co.jpなら、アットマークは7文字目にあるため、結果は7です。
この位置情報をLEFT関数と組み合わせれば、氏名部分だけを可変長で取り出せます。
固定文字数ではないデータほど、区切り記号の位置を取得する考え方が重要になります。
FIND関数は大文字と小文字を区別しますが、アットマークやハイフンのような記号を探す用途では大きな問題になりにくいでしょう。
LEFT関数とFIND関数の組み合わせ
メールアドレスのアットマークより前を抽出するには、次の数式を使用します。
=LEFT(A2,FIND(“@”,A2)-1)
FIND関数でアットマークの位置を求め、その1文字前までをLEFT関数で取り出す数式です。
tanaka@example.co.jpなら、FIND関数の結果は7であり、そこから1を引いた6文字をLEFT関数が抽出します。
結果はtanakaになります。
区切り記号そのものを含めずに抽出したいときは、位置から1を引く処理を忘れないようにしましょう。
部署名-氏名のような文字列でも、ハイフンを基準にして同じ考え方を利用できます。
ただし、氏名自体にハイフンが含まれるデータでは、最初のハイフンを基準にしてよいかを事前に確認する必要があります。
IFERROR関数によるエラー表示の整理
FIND関数は、探したい記号がセル内に存在しない場合にエラーを返します。
メールアドレス欄が空白だったり、アットマークが入力されていなかったりすると、数式結果にエラーが表示されることがあります。
見やすい表に整えるには、IFERROR関数で数式を包みます。
=IFERROR(LEFT(A2,FIND(“@”,A2)-1),””)
この数式では、正常に抽出できる場合はユーザー名を表示し、エラーの場合は空白を表示します。
空白ではなく確認要と表示したいなら、最後の空欄部分を確認要という文字列に置き換えることもできます。
IFERROR関数はエラーを隠すだけでなく、入力漏れをどのように見せるかを整えるための関数です。
【操作のポイント】区切り記号を使う数式では、記号がない行が混ざる可能性を考え、IFERROR関数で表示方法を決めておくと表が読みやすくなります。
文字列抽出時のエラーと書式設定
| 確認項目 | 主な原因 |
|---|---|
| 意図しない文字が表示される | 開始位置または文字数の設定違い |
| 先頭の0が消える | 数値形式への変換 |
続いては、文字列抽出で起こりやすいエラーや表示の違和感を確認していきます。
開始位置のずれによる抽出ミス
MID関数で想定と違う文字列が表示される場合は、開始位置がずれていることがよくあります。
商品コードAB-2026-001のように、ハイフンが含まれている文字列では、Aが1文字目、Bが2文字目、ハイフンが3文字目です。
年度の2は4文字目になるため、=MID(A2,4,4)と指定します。
データの形式がTKY-2026-001のように支店コード3文字へ変わると、年度の開始位置は5文字目になります。
見た目が似たデータでも、接頭辞の桁数が異なるとMID関数の開始位置は共通にできません。
複数形式のデータが混在する場合は、固定位置のMID関数よりも、FIND関数を使って区切り記号を探す方法を検討しましょう。
数値化と文字列形式の違い
文字列を抽出した結果が00125のようなコードである場合、セルの表示形式を標準にしても、関数の結果は通常そのまま表示されます。
しかし、抽出結果に計算を加えると、Excelが数値として解釈して先頭の0を落とすことがあります。
コードを保管する列は、ホームタブの表示形式から文字列を設定しておくと安心です。
すでに入力済みの数式がある場合は、数式を再入力するか、必要に応じて先頭にアポストロフィを付ける方法があります。
コードと金額を同じ列に混在させると、後の集計や並べ替えで問題になりやすいため、用途別に列を分けることをおすすめします。
空白文字と全角半角の確認
抽出結果に余分な空白が含まれる場合は、元データの先頭や末尾にスペースがあるかもしれません。
TRIM関数を使うと、連続した半角スペースを整理できます。
=TRIM(LEFT(A2,10))
ただし、TRIM関数では全角スペースを完全には処理できないことがあります。
日本語データを扱う場合は、全角スペース、半角スペース、改行、コピー元に含まれる見えない文字にも注意が必要です。
数式が正しくても元データに不要な文字があれば、抽出結果もその影響を受けます。
まずは数式を疑う前に、セルを編集状態にして余分な空白や記号がないか確認しましょう。
【操作のポイント】抽出結果がおかしいときは、数式の引数、元データの文字数、セルの表示形式の順番で確認すると原因を絞り込みやすくなります。
まとめ エクセルで文字列を抽出する方法
Excelで文字列を抽出するには、先頭から取り出すLEFT関数、末尾から取り出すRIGHT関数、途中から取り出すMID関数を使い分けます。
LEFT関数は部署コードや接頭辞の抽出に向き、RIGHT関数は連番や末尾の固定桁コードに便利です。
MID関数は年度や分類番号のように、文字列の途中にある情報を取り出すときに役立ちます。
データの文字数が固定ならLEFT・RIGHT・MID関数だけで処理しやすく、文字数が変動するならFIND関数やLEN関数を組み合わせることがポイントです。
1行目を見出しとして残し、2行目に数式を入力してからオートフィルを使えば、大量の一覧データにも効率よく対応できます。
先頭の0、ハイフン、空白、全角半角の違いは抽出結果に影響するため、元データの形式を確認しながら数式を作成しましょう。
文字列の構造を把握して適切な関数を選べば、Excelでのデータ整理やコード分割をより正確かつ短時間で進められます。