特定の文字より前を抽出する方法「LEFT関数・FIND関数」 Excel(エクセル)

エクセル関数
記事内に広告が含まれています。

下図のように文字列の後に余分なデータが入っていて、余分なデータより左側の文字列のみ抽出したい場合、文字数が一定では無いため単純にLEFT関数だけで抽出ができません。

「A2」セルの金額を含まない左側だけを表示させたい

A2」セルの「」マークより左側を抜き出す関数

=LEFT(A2,FIND("\",A2)-1)

以降ではこの関数の考え方について解説をさせていただきます。

特定の文字より前を抽出する方法は特定の文字以降を抽出する方法「RIGHT関数・FIND関数」 Excel(エクセル)を参照してください。

LEFT関数の使い方

LEFT関数はセルの文字列のうち右から○文字を抜き出すという関数です。

=LEFT(文字列,[文字数])

全角も半角も1文字とカウントします

「A2」セルの左から6文字を表示させたい

今回上図の状態で「A2」セルから左側の6文字の文字列を抜き出すためには「文字列」は「A2」セル、「文字数」は6文字ですので、以下のように入力します。

=LEFT(A2,6)

すると、下図のように金額以外の文字列を表示させることが出来ました。

金額以外の文字列だけを表示させることが出来た

しかしこの関数を同様に下のセルにも反映させると、下図のようにすべて6文字だけ抽出してしまうので、金額の一部が表示されてしまっていたり文字全体を表示することが出来ていなかったりします。

「B3」セルから「B5」セルまでの表示結果がおかしい

これは各セルの文字列が6文字とは限らないため、このような結果になってしまいました。

そこでこのように抽出したい文字の場所がセルによって動いてしまう場合には「FIND関数」を使うことで解決する事ができます。

FIND関数の使い方

FIND関数は特定も文字列がセルの中の何文字目に存在しているかを整数で返してくれる関数です。

=FIND(検索文字列,対象,[開始位置])

全角も半角も1文字とカウントします

「¥」マークが「A2」何文字目にあるのかを探すためには、下記のように関数を入力します。

=FIND("\",A2)

すると下図のように「7」という数字が返ってきました。

「¥」マークが左から7文字目であることが分かった

これは「」マークが左から数えて「7文字目」であるためです。

これをLEFT関数に反映させるために以下のように関数を記載してみます。

=LEFT(A2,FIND("\",A2))

すると以下のように「」マークまで表示されてしまいました。

余分な「¥」マークまで表示されてしまった

これは、「」マークが7文字目であり、左から7文字目までを表示させているためです。
これを回避するためにFIND関数の後に「-1」を記載してみます。

=LEFT(A2,FIND("\",A2)-1)

これを「B2」セルから「B5」セルまで反映させると下図のように文字数に合わせて正しく表示させることが出来ました。

全てのセルで金額を除いた文字列が正しく表示されました。

まとめ

今回は特定の文字から左側を抽出する方法を解説しましたが、特定の文字から右側を抽出したい場合は特定の文字以降を抽出する方法「RIGHT関数・FIND関数」 Excel(エクセル)の記事を参照してください。

LEFT関数の使い方はExcel(エクセル)文字列の右又は左から特定の数の文字を取り出すRIGHT関数、LEFT関数でも解説しています。

コメント

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