スプレッドシートのLEFT関数の使い方で悩んでいませんか?住所から都道府県名だけ、商品コードの先頭2文字だけを取り出したい場面はよくありますよね。
でも、文字列の一部を手作業で切り出すのは大変です。データ件数が増えるほど、時間もミスも増えていきます。
LEFT関数を使えばこの作業が一瞬で完了します。この記事では基本構文から実務での活用例、エラー対処法まで丁寧に解説します。
LEFT関数とは?スプレッドシートで左から文字を取り出す基本構文
LEFT関数は、セルの文字列を左端から指定した文字数だけ取り出す関数です。一度覚えれば様々な場面で使えますよ。
「LEFT(レフト)」は英語で「左」を意味します。文字列の左側(先頭)から切り出す動作を表しています。ExcelとGoogleスプレッドシートで完全に互換性があるので、両方で使えます。
書き方(構文)と引数の意味
=LEFT(文字列, [文字数])
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 文字列 | 必須 | 取り出し元のセルまたはテキスト |
| 文字数 | 省略可 | 取り出す文字数(省略時は1文字を返す) |
文字数は省略できます。省略すると先頭の1文字だけが返されます。
全角・半角は関係なく、どちらも1文字=1文字としてカウントされます。バイト数で計算したい場合はLEFTB関数を使いますが、通常のテキスト処理ではLEFTで十分です。
基本的な使用例
セルA1に「東京都渋谷区」と入力されているとします。
=LEFT(A1, 3) → 「東京都」
=LEFT(A1, 1) → 「東」
=LEFT(A1) → 「東」(文字数省略時も1文字を返す)
先頭から何文字取り出すか指定するだけです。とてもシンプルですね。
実務でよく使うLEFT関数の活用例
LEFT関数が実際の業務でどう役立つか、よく使うパターンを3つ紹介します。
都道府県名を住所から抽出する
住所の一覧から都道府県名だけを取り出したいとき、LEFT関数が使えます。
都道府県名は「東京都」「大阪府」「愛知県」のような3文字が多いです。この場合はLEFT(A2, 3)で抽出できます。
=LEFT(A2, 3) → 「東京都」「大阪府」「愛知県」
「神奈川県」「和歌山県」のような4文字の都道府県もあります。その場合はIF関数との組み合わせが必要ですが、まずは3文字パターンから慣れていきましょう。
郵便番号の上3桁(地域コード)を取り出す
「123-4567」という形式の郵便番号から、上3桁を取り出す例です。
=LEFT(A2, 3) → 「123」
先頭から3文字を取るだけです。ハイフンの位置を意識する必要はありません。
郵便番号を地域ごとに集計・分類したい場面でよく使います。
商品コードの先頭2文字で分類する
「AB-001」「CD-002」のような商品コードで、先頭2文字がカテゴリを表している場合です。
=LEFT(A2, 2) → 「AB」「CD」など
取り出した2文字をキーにして、VLOOKUPやIF関数で分類処理につなげられます。LEFT関数は「他の関数のインプットを作る」役割でもよく使われますよ。
LEFT・RIGHT・MIDの違いと使い分け
文字列を取り出す関数にはLEFT以外に「RIGHT」と「MID」があります。どれも文字列の一部を切り出す関数ですが、取り出す位置が異なります。
3関数の比較一覧
| 関数 | 取り出す位置 | 構文 | 使用例 |
|---|---|---|---|
| LEFT | 左端(先頭)から | =LEFT(文字列, 文字数) | 都道府県名、カテゴリコード |
| RIGHT | 右端(末尾)から | =RIGHT(文字列, 文字数) | 年号の下2桁、ファイル拡張子 |
| MID | 任意の開始位置から | =MID(文字列, 開始位置, 文字数) | 電話番号の市外局番、コードの中間部分 |
どれを使うか迷ったときの判断フレーム
取り出したい文字がどこにあるかで選べます。
- 先頭から数えたほうが早い → LEFT
- 末尾から数えたほうが早い → RIGHT
- 真ん中あたりにある → MID
「2024-03-18」から年を取りたいなら、先頭4文字なのでLEFT(A1, 4)です。日だけなら末尾2文字なのでRIGHT(A1, 2)になります。
よくあるエラーと対処法
LEFT関数で思ったとおりに動かないときのパターンを解説します。
数値セルに使うとうまくいかない(TEXT関数との組み合わせ)
LEFT関数は文字列を扱う関数です。数値セルに使うと意図しない結果になる場合があります。
A1に数値1234567が入っている場合、通常の整数ならこれで動きます。
=LEFT(A1, 3) → 「123」(一見うまくいく)
ただし日付や通貨形式など、書式が設定されている場合は注意が必要です。表示値ではなくシリアル値から切り出されることがあります。
確実に表示どおりに切り出したいときは、TEXT関数で文字列に変換してからLEFTを使いましょう。
=LEFT(TEXT(A1, "0"), 3)
ちょっとむずかしく見えますが、やっていることはシンプルです。TEXT関数で数値を文字列に変えて、それをLEFTで切り出しているだけですよ。
文字数を超えて指定しても大丈夫?
「5文字しかないテキストにLEFT(A1, 100)と指定したら?」という疑問を持つ方もいますよね。
答えは「エラーにならず、テキスト全体を返す」です。
=LEFT("Hello", 100) → 「Hello」(はみ出した分は無視)
安心して使ってください。ただし、マイナスの文字数を指定すると#VALUE!エラーになります。
=LEFT(A1, -1) → #VALUE!エラー
文字数に0を指定すると空文字列("")が返ります。これはエラーではありません。
FIND関数と組み合わせて可変長の切り出しをする(応用)
LEFT関数は文字数を固定して切り出します。でも「何文字か分からないけど、ある文字の手前まで取り出したい」というケースもありますよね。
そこで便利なのがFIND関数との組み合わせです。FINDは大文字と小文字を区別して検索します。区別が不要な場合はSEARCH関数を使ってください。
メールアドレスからユーザー名を取り出す
メールアドレスの@より前の部分を取り出す例です。
=LEFT(A1, FIND("@", A1)-1)
ちょっとむずかしく見えますが、分解すると簡単です。
FIND("@", A1)で@が何文字目かを数値で取得する- そこから1を引いて「@の直前の文字位置」を計算する
- その数値をLEFTの文字数として渡す
「tanaka@example.com」なら@は7文字目です。7-1=6なのでLEFT(A1, 6)と同じ動作になり、結果は「tanaka」です。
IFERRORでエラーを防ぐ
対象セルに@がない場合、FINDはエラーを返します。エラーを防ぐにはIFERRORでラップしましょう。
=IFERROR(LEFT(A1, FIND("@", A1)-1), "該当なし")
@があればユーザー名を、なければ「該当なし」を返します。実務データは必ずしもきれいとは限りません。このIFERRORパターンは覚えておくと役立ちますよ。
まとめ
LEFT関数の要点を整理します。
| ポイント | 内容 |
|---|---|
| 基本構文 | =LEFT(文字列, 文字数) |
| 文字数省略 | 省略すると1文字を返す |
| 文字数超過 | エラーにならずテキスト全体を返す |
| マイナス指定 | #VALUE!エラーになる |
| ゼロ指定 | 空文字列("")を返す |
| 全角・半角 | どちらも1文字としてカウント |
LEFT関数は文字列操作の基本中の基本です。まずは「先頭から何文字取り出す」というシンプルな使い方から試してみてください。
慣れてきたらFIND関数との組み合わせにも挑戦してみましょう。可変長の切り出しができるようになると、実務でのデータ整理の幅が一気に広がりますよ。
RIGHT関数(末尾から切り出し)やMID関数(任意の位置から切り出し)についても近日中に解説予定です。文字列操作シリーズとして順次公開していくので、楽しみにしていてください。
