目次
ExcelのLEFT関数を使って、文字列の先頭から部分文字列を取得する方法、特定の文字より前のテキストを抽出する方法、Left式で強制的に数値を返す方法などをご紹介しています。
Microsoft Excelには、テキストデータを操作するためのさまざまな関数がありますが、LEFTは最も広く使われている関数の1つです。 その名前が示すように、この関数はテキスト文字列の左側から一定の文字数を抽出することができます。 しかし、Excel LEFTはその本質以上のことが可能です。 このチュートリアルでは、いくつかの基本的なLeft数式を紹介し、次のことを学びましょう。を理解した上で、ExcelのLEFT関数を基本的な使い方以上に活用する方法をいくつか紹介します。
Excel LEFT関数 - 構文
ExcelのLEFT関数は、文字列の先頭から指定した文字数(部分文字列)を返します。
LEFT関数のシンタックスは以下のとおりです。
LEFT(text, [num_chars])どこで
- テキスト (必須) は、部分文字列を抽出したいテキスト文字列です。 通常は、テキストを含むセルへの参照として提供されます。
- 数字(Num_chars (オプション) - 抽出する文字数、文字列の左側から順に指定します。
- もし num_chars を省略した場合、デフォルトは 1 で、これは Left の数式が 1 文字を返すことを意味します。
- もし num_chars の全長より大きい。 テキスト をすべて返すので、左の式は テキスト .
たとえば、セルA2のテキストから最初の3文字を抽出するには、次の数式を使用します。
=LEFT(A2, 3)
次の画面は、その結果を示したものです。
重要!LEFT はテキスト関数のカテゴリに属しているので、Left の式の結果は常に テキスト文字列 もし、数値データセットを扱っていて、LEFT関数で数値を返したい場合は、この例のようにVALUE関数と一緒に使ってください。
ExcelでLEFT関数を使用する方法 - 数式の例
LEFT関数は、文字列の左側からテキストを抽出する以外に、どんなことができるのでしょうか。 次の例では、LEFTと他のExcel関数を組み合わせて、より複雑なタスクを解決する方法を紹介します。
ある文字より前の部分文字列を抽出する方法
場合によっては、テキスト文字列の特定の文字より前の部分を抽出する必要があります。 たとえば、フルネームの列からファーストネームを抽出したり、電話番号の列から国番号を取得したりすることができます。 問題は、それぞれの名前やコードには異なる数の文字が含まれていることです。 num_chars の引数に、上記の例で行ったような Left 式を指定します。
姓と名がスペースで区切られている場合、問題は文字列中のスペース文字の位置を調べることで、これはSEARCH関数かFIND関数を使えば簡単にできます。
仮にフルネームがセルA2にあるとすると、スペースの位置はSEARCH(" ",A2))という簡単な数式で返されます。 そして、この数式を、次のように埋め込みます。 num_chars の引数は、LEFT 関数です。
=left(a2, search(" ", a2))
数式をもう少し改良するには、「検索」式の結果から1を引いて、末尾のスペースを取り除きます(セルには表示されませんが、末尾のスペースは、特に抽出した名前を他の数式で使用する場合に多くの問題を引き起こす可能性があります)。
=left(a2, search(" ", a2)-1)
同じように、電話番号の列から国番号を抽出することができます。 ただ、スペースではなく、最初のハイフン("-")の位置を検索機能で見つけるという違いがあります。
=left(a2, search("-", a2)-1)
最後に、この一般的な式を使って、他の文字の前にある部分文字列を取得することができます。
左側( 列 , SEARCH( せいかく , 列 ) - 1)文字列から最後のN文字を削除する方法
ExcelのLEFT関数を使って文字列の先頭から部分文字列を取得する方法はすでにご存知でしょう。 しかし、文字列の最後からある文字数を取り除き、残りの文字列を別のセルに取り込みたい場合もあります。 この場合は、LEFT関数とLENを組み合わせて、以下のように使用します。
左側( の文字列を表示します。 LEN( 列 ) - 削除する文字数 )LEN関数で文字列の総文字数を取得し、総文字数から不要な文字数を引いて、残りの文字をLEFT関数に返させるという理屈で計算式が動く。
例えば、A2のテキストから最後の7文字を削除するには、次の式を使用します。
=left(a2, len(a2)-7)
下のスクリーンショットに示すように、この計算式は正常に""をカットしています。 - ToDo" A列のテキスト文字列からポストフィックス(4文字、ハイフン、2スペース)を選択します。
LEFT関数が数値を返すように強制する方法
すでにご存知のように、ExcelのLEFT関数は、数値から最初の数桁を取り出す場合でも、常にテキストを返します。 これが意味するところは、Left式の結果を計算や数値に対して操作する他のExcel関数で使用することができない、ということです。
では、Excel LEFTに文字列ではなく数値を出力させるにはどうしたらよいのでしょうか。 単純に、数値を表す文字列を数値に変換するためのVALUE関数で包むと、次のようになります。 値(LEFT())
例えば、A2の文字列から最初の2文字を抽出して数値に変換して出力するには、次の式を使用します。
=value(left(a2,2))
結果はこのような感じになります。
上のスクリーンショットを見ると、A列の左寄せのテキストに対して、Value Leftの数式で得られたB列の数値はセル内で右寄せになっています。Excelは出力を数値として認識するので、その数値の合計や平均、最小値や最大値を求めるなど、自由に計算をすることができます。
このチュートリアルで説明する数式をより詳しく見るには、ExcelのLEFT関数のサンプルワークシートをダウンロードしてください。
Leftの数式例については、以下の資料をご覧ください。
- カンマ、コロン、スラッシュ、ダッシュなどの区切り文字による文字列の分割
- 改行で文字列を分割する方法
- 8進数から日付への変換方法
- 指定した文字の前後の文字数を数える
- 異なる範囲内の数値に対して異なる計算を行う配列式
Excel LEFT関数が動作しない - 原因と解決策
ExcelのLEFT関数がワークシートで正しく動作しない場合、次のいずれかの原因が考えられます。
1.引数Num_charsが0未満である。
Excel Leftの数式が#VALUE!エラーを返した場合、最初に確認するのは num_chars もし負の数であれば、マイナス記号を削除すればエラーはなくなります(もちろん、誰かが意図的に負の数をそこに置くことは非常にまれですが、誤るのは人間です :)。
多くの場合、VALUEエラーは、以下の場合に発生します。 num_chars この場合、その関数を別のセルにコピーするか、数式バーで選択してF9キーを押して、その関数が何に相当するかを確認します。 値が0より小さい場合は、その関数にエラーがないかどうかを確認します。
最初の例で使った、国の電話番号を抽出するLEFT(A2, SEARCH("-", A2)-1) を例に説明しましょう。 覚えているかもしれませんが、Search関数の num_chars 引数は、元の文字列の最初のハイフンの位置を計算し、そこから1を引いて最終的な結果からハイフンを取り除きます。 たとえば-1を誤って-11に置き換えると、この式は#VALUEエラーを引き起こします。 num_chars 引数は負の数に相当する。
2.原文のリード・スペース
Excelの左の数式が明らかな理由なく失敗した場合、元の値の先頭のスペースを確認してください。 Webからデータをコピーしたり、他の外部ソースからエクスポートした場合、そのようなスペースがテキスト入力の前に気付かないうちに多く潜んでいることがあります。 次の画像は、この問題を説明しています。
ワークシートの先頭のスペースを取り除くには、ExcelのTRIM関数またはText Toolkitアドインを使用します。
3. ExcelのLEFTが日付で機能しない
ExcelのLEFT関数を使って日付の個々の部分(日、月、年など)を取得しようとすると、ほとんどの場合、その日付を表す数値の最初の数桁しか取得できません。 要は、Microsoft Excelでは、すべての日付は1900年1月1日からの日数を表す整数として格納されており、これは1番として格納されています(詳細については、次のページを参照してください)。Excelの日付形式)。 セルに表示されるのは、あくまで視覚的な日付の表現であり、別の日付形式を適用することで簡単に表示を変更することができます。
例えば、セルA1に11-Jan-2017という日付があり、LEFT(A1,2)という数式で日を抽出しようとすると、結果は42となり、これはExcel内部システムで2017年1月11日を表す番号42746の最初の2桁にあたります。
日付の特定の部分を抽出するには、DAY、MONTH、YEARのいずれかの関数を使用します。
日付が文字列で入力されている場合、スクリーンショットの右側のように、LEFT機能は問題なく動作します。
以上、エクセルでのLEFT関数の使い方でした。 読んでいただき、ありがとうございました!来週もよろしくお願いします。