スプレッドシートのLEFT関数の使い方|文字の左から取り出す実務5パターン

スポンサーリンク

スプレッドシートのLEFT関数を使えば、住所から都道府県だけ、商品コードの先頭2文字だけを一瞬で取り出せます。手作業で文字を切り出すと時間もミスも増えますが、LEFT関数なら数式一つで大量データを一括処理できますよ。

この記事では基本構文から実務で即使える5つの活用パターン、FIND関数と組み合わせた応用技までを丁寧に解説します。4文字都道府県への対応やRIGHT・MIDとの使い分けまで網羅しますよ。

LEFT関数とは?スプレッドシートで左から文字を取り出す基本構文

LEFT関数は、文字列の左端(先頭)から指定した文字数だけ取り出す関数です。Googleスプレッドシートの文字列操作では最もよく使う関数の一つですよ。

「LEFT(レフト)」は英語で「左」を意味します。ExcelとGoogleスプレッドシートで完全に互換性があるため、両方の環境で同じように動きます。

書き方(構文)と引数の意味

=LEFT(文字列, [文字数])
引数必須/省略可説明
文字列必須取り出し元のセル参照またはテキスト
文字数省略可取り出す文字数(0以上の整数)。省略時は1

文字数は省略できます。省略時は先頭1文字だけを返します。

全角・半角は関係なく、どちらも1文字=1文字としてカウントされます。バイト数で計算したい場合はLEFTB関数を使いますが、通常のテキスト処理ではLEFTで十分です。

基本的な使用例

セル A1 に「東京都渋谷区」と入力されているとします。

=LEFT(A1, 3)  → 「東京都」
=LEFT(A1, 1)  → 「東」
=LEFT(A1)     → 「東」(文字数省略時も1文字を返す)

先頭から何文字取り出すかを指定するだけです。とてもシンプルですね。

NOTE

LEFT関数の文字カウントは「見た目の1文字」単位です。「あ」も「a」も同じ1文字として扱われます。バイト数で処理したい場合(DBの桁制限チェックなど)はLEFTB関数を使ってください。

LEFT関数の実務で使える5つの活用パターン

LEFT関数が実際の業務でどう役立つか、よく使う5つのパターンを紹介します。どれも現場でそのまま使える実践的な例ですよ。

パターン1: 住所から都道府県名を抽出する

住所一覧から都道府県名だけを取り出したいときの定番パターンです。

日本の都道府県47のうち、43都道府県が「〜都」「〜道」「〜府」「〜県」の3文字です。全体の91.5%を占めるので、まずは3文字パターンで考えましょう。

=LEFT(A2, 3)  → 「東京都」「大阪府」「愛知県」

3文字抽出するだけでほとんどの住所に対応できます。

パターン2: 郵便番号の上3桁(地域コード)を取り出す

「123-4567」形式の郵便番号から、上3桁の地域コードを取り出すパターンです。

=LEFT(A2, 3)  → 「123」

日本の郵便番号は7桁で、先頭3桁が政令指定都市や都道府県単位の地域コードになっています。地域別の集計や配送エリア分類でよく使います。

ハイフンの位置を気にする必要はありません。先頭から3文字を切り出すだけでOKです。

パターン3: 商品コード・社員番号で分類する

「AB-001」「CD-002」のような商品コードで、先頭2文字がカテゴリを表すケースです。

=LEFT(A2, 2)  → 「AB」「CD」など

取り出した2文字をキーにして、VLOOKUP関数で分類マスターを引く定番パターンにつなげられます。

=VLOOKUP(LEFT(A2, 2), カテゴリ表!A:B, 2, FALSE)

LEFT関数は「他の関数のインプットを作る」役割でもよく使われますよ。社員番号の先頭1〜2文字で部署コードを表すパターンも同じ考え方で対応できます。

パターン4: 日付文字列から年を取り出す

「2024-03-18」のような日付文字列から、年の4文字だけを取り出すパターンです。

=LEFT(A2, 4)  → 「2024」

CSVファイルから取り込んだ日付文字列を年度別に集計したいときによく使います。

WARNING

日付型(シリアル値)のセルに直接LEFTを使うと、シリアル値(44915など)から切り出されてしまいます。表示通りに切り出したい場合はTEXT関数でラップしてください。

=LEFT(TEXT(A2, "YYYY-MM-DD"), 4)

パターン5: ファイル名から拡張子を除いた部分を抽出

「report.xlsx」のようなファイル名から、拡張子を除いた本体部分を取り出すパターンです。拡張子の文字数が固定なら単純に文字数指定でOKです。

=LEFT(A2, LEN(A2)-5)  → 「report」(「.xlsx」5文字を除く)

LEN関数で全体の文字数を取得し、そこから拡張子の文字数を引いています。ちょっとむずかしく見えますが、やっていることはシンプルですよ。

拡張子の文字数が可変(.xlsx / .pdf など混在)の場合は、次のFIND関数との組み合わせが便利です。

FIND関数と組み合わせて可変長の文字列を取り出す(応用)

LEFT関数は文字数を固定して切り出します。でも「何文字か分からないけど、ある文字の手前まで取り出したい」というケースもよくありますよね。

そこで便利なのがFIND関数との組み合わせです。FIND関数は指定した文字が何文字目にあるかを返します。

メールアドレスからユーザー名を取り出す

メールアドレスの @ より前の部分を取り出す例です。

=LEFT(A1, FIND("@", A1)-1)

分解すると簡単です。

  1. FIND("@", A1)@ が何文字目かを数値で取得する
  2. そこから1を引いて「@の直前の文字位置」を計算する
  3. その数値をLEFTの文字数として渡す

「tanaka@example.com」なら @ は7文字目です。7-1=6なので LEFT(A1, 6) と同じ動作になり、結果は「tanaka」になります。

「姓 名」形式から姓だけを取り出す

「田中 太郎」のような姓名の間にスペースがあるデータから、姓だけを取り出すパターンです。

=LEFT(A1, FIND(" ", A1)-1)  → 「田中」(半角スペース区切り)
=LEFT(A1, FIND(" ", A1)-1) → 「田中」(全角スペース区切り)

スペースが全角・半角混在している場合は、両方を試す書き方もできます。

=LEFT(A1, MIN(IFERROR(FIND(" ", A1), LEN(A1)+1), IFERROR(FIND(" ", A1), LEN(A1)+1))-1)

少し長いですが、全角スペースと半角スペースのどちらか先に見つかった方で切り出します。

IFERRORでエラーを防ぐ

対象セルに @ やスペースがない場合、FIND関数はエラーを返します。エラーを防ぐにはIFERRORでラップしましょう。

=IFERROR(LEFT(A1, FIND("@", A1)-1), "該当なし")

@ があればユーザー名を、なければ「該当なし」を返します。実務データは必ずしもきれいとは限りません。このIFERRORパターンは覚えておくと役立ちますよ。

TIP

大文字・小文字を区別せずに検索したい場合はSEARCH関数を使います。FIND関数は区別する、SEARCH関数は区別しないという違いだけで、使い方は同じです。

4文字の都道府県に対応する方法

都道府県抽出で注意したいのが、4文字の都道府県です。「神奈川県」「和歌山県」「鹿児島県」の3県は4文字あります。単純な LEFT(A2, 3) だと「神奈川」「和歌山」「鹿児島」になってしまいます。

IF関数との組み合わせパターン

4文字の都道府県かどうかを判定してから切り出す方法です。

=IF(OR(LEFT(A1,4)={"神奈川県","和歌山県","鹿児島県"}), LEFT(A1,4), LEFT(A1,3))

先頭4文字が「神奈川県」「和歌山県」「鹿児島県」のいずれかなら4文字を返し、それ以外は3文字を返します。

REGEXEXTRACT関数を使うスマートな方法

Googleスプレッドシート固有の正規表現関数 REGEXEXTRACT を使うと、より簡潔に書けます。

=REGEXEXTRACT(A1, "^(.+?[都道府県])")

「最初に現れる『都』『道』『府』『県』までを取り出す」という意味です。3文字でも4文字でも自動的に対応できるため、保守が楽です。

NOTE

REGEXEXTRACT関数はGoogleスプレッドシートの固有関数で、Excelにはありません(Excel 365のREGEXEXTRACTは2024年以降に追加されました)。Excel・Sheets両方で使う数式にはIF+OR方式が安全です。

LEFT・RIGHT・MIDの違いと使い分け(文字列操作9関数比較)

文字列を操作する関数はLEFT以外にもたくさんあります。どれを使うか迷ったときの判断基準を整理しておきましょう。

切り出し位置による使い分け

関数取り出す位置構文使用例
LEFT左端(先頭)から=LEFT(文字列, 文字数)都道府県名、カテゴリコード
RIGHT右端(末尾)から=RIGHT(文字列, 文字数)年号の下2桁、ファイル拡張子
MID任意の開始位置から=MID(文字列, 開始位置, 文字数)電話番号の市外局番、コードの中間部分

判断フレームはシンプルです。

  • 先頭から数えたほうが早い → LEFT
  • 末尾から数えたほうが早い → RIGHT
  • 真ん中あたりにある → MID

「2024-03-18」から年を取りたいなら、先頭4文字なので LEFT(A1, 4) です。日だけなら末尾2文字なので RIGHT(A1, 2) になります。

文字列操作9関数の全体比較

文字列を扱う主要関数を一覧にまとめました。

関数機能典型的な用途
LEFT左から文字数指定で抽出都道府県、先頭コード
RIGHT右から文字数指定で抽出拡張子、末尾コード
MID途中から文字数指定で抽出電話の市外局番
FIND文字の位置を返す(大小区別あり)区切り文字検索
SEARCH文字の位置を返す(大小区別なし)大小文字問わない検索
LEN文字列の長さを返す文字数カウント
SUBSTITUTE指定文字を置換スペース削除、全角半角統一
REPLACE位置指定で文字を置換特定位置のマスキング
REGEXEXTRACT正規表現で抽出(Sheets固有)柔軟なパターンマッチ

LEFT関数は他の文字列関数と組み合わせると威力が増します。FIND関数で可変長の抽出、SUBSTITUTE関数で条件付き加工ができるようになりますよ。

よくあるエラーと対処法

LEFT関数で思ったとおりに動かないときのパターンをまとめます。

数値セルに使うとうまくいかない

LEFT関数は文字列を扱う関数です。数値セルや日付セルに使うと意図しない結果になる場合があります。

A1に数値 1234567 が入っている場合、通常の整数ならこれで動きます。

=LEFT(A1, 3)  → 「123」

ただし日付や通貨形式など、書式が設定されている場合は注意が必要です。表示値ではなく内部のシリアル値から切り出されることがあります。

確実に表示通りに切り出したいときは、TEXT関数で文字列に変換してからLEFTを使いましょう。

=LEFT(TEXT(A1, "0"), 3)

TEXT関数で数値を文字列に変換して、それをLEFTで切り出しているだけですよ。

マイナスの文字数で#VALUE!エラー

文字数にマイナスを指定すると #VALUE! エラーになります。

=LEFT(A1, -1)  → #VALUE!エラー

LEN関数との組み合わせで計算した文字数がマイナスになるケースで発生しやすいエラーです。たとえば LEN(A1)-10 は A1 が10文字未満のときにマイナスになります。IFで0未満を回避するか、MAX関数でラップして対応しましょう。

=LEFT(A1, MAX(LEN(A1)-3, 0))

文字数を超えて指定しても大丈夫?

「5文字しかないテキストに LEFT(A1, 100) と指定したら?」という疑問を持つ方もいますよね。

答えは「エラーにならず、テキスト全体を返す」です。

=LEFT("Hello", 100)  → 「Hello」(はみ出した分は無視)

安心して使ってください。文字数に0を指定すると空文字列("")が返ります。これもエラーではありません。

エラー早見表

エラー・症状原因対処法
#VALUE!文字数がマイナスMAX関数で0以下にならないようラップ
表示と結果が違う日付・通貨書式のセルTEXT関数で文字列化してから切り出す
FIND組み合わせで#VALUE!検索文字が存在しないIFERRORでラップ
複数行で動かない配列処理未対応ARRAYFORMULAでラップ

ARRAYFORMULAで複数行一括処理

複数行に一括でLEFTを適用したい場合は ARRAYFORMULA を使います。

=ARRAYFORMULA(LEFT(A2:A100, 3))

1セルに数式を書くだけで A2〜A100 の全行に結果が反映されます。下方向にコピーする手間が不要で、データが増えても自動で対応するメリットがありますよ。

ExcelのLEFT関数との違い・LEFTBとの違い

LEFT関数はExcelとGoogleスプレッドシートで基本動作が同一です。ただし細かな違いと、LEFTB関数との使い分けは押さえておきましょう。

ExcelのLEFT関数との比較

項目スプレッドシートExcel
基本構文=LEFT(文字列, 文字数)同じ
引数仕様文字数省略時は1同じ
エラー挙動マイナスで#VALUE!同じ
ARRAYFORMULA=ARRAYFORMULA(LEFT(...))SPILL機能で自動配列化
REGEXEXTRACT使える(固有関数)Excel 365の新機能

どちらの環境でもLEFT関数は同じ動作をします。ExcelとSheets両方で使うシートでも安心して使えますよ。

LEFT関数とLEFTB関数の違い

LEFTB関数はバイト数で文字を切り出す関数です。全角=2バイト、半角=1バイトとしてカウントします。

関数カウント単位使用例
LEFT文字数(全角・半角とも1)「あいう」→ 3文字
LEFTBバイト数(全角2・半角1)「あいう」→ 6バイト
=LEFT("あいうえお", 3)   → 「あいう」
=LEFTB("あいうえお", 3)  → 「あ」(全角1文字=2バイト、残り1バイトは切り捨て)

通常のデータ処理ではLEFT関数で十分です。DBの桁制限チェックや固定長ファイル処理などバイト数を厳密に扱う場面でのみLEFTBを使います。

まとめ

LEFT関数の要点を整理します。

ポイント内容
基本構文=LEFT(文字列, 文字数)
文字数省略省略すると1文字を返す
文字数超過エラーにならずテキスト全体を返す
マイナス指定#VALUE!エラーになる
ゼロ指定空文字列("")を返す
全角・半角どちらも1文字としてカウント

LEFT関数は文字列操作の基本中の基本です。5つの活用パターンから自分の業務に近いものを1つ選んで試してみてください。

FIND関数やLEN関数と組み合わせて可変長の切り出しができるようになると、実務でのデータ整理の幅が一気に広がりますよ。Googleスプレッドシート固有のREGEXEXTRACT関数も合わせて使えると、正規表現で柔軟な抽出が可能になります。

RIGHT関数(末尾から切り出し)やMID関数(任意の位置から切り出し)もLEFTと同じ感覚で使える関数です。文字列操作シリーズとして、ぜひ合わせて習得してください。

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