いまさら聞けないExcelの使い方講座

【Excel】「ME1234」のような商品コードを「ME」と「1234」に分けたい!エクセルで区切り文字がないデータを分解するテク

商品コードから一部の文字列を取り出したい!

 「ME1234-0205」のように付けられた商品コードは、分類コードや製品番号、賞味期限などを意味する文字列がつながって構成されていることがありますよね。

 このような商品コードが1つのセルに入力されている時に、商品コードの一部の文字列を別のセルに取り出して、集計や分析に使いたいと思ったことはありませんか。

 カンマや空白などの区切り文字が使用されている文字列を分解する場合は、区切り位置指定ウィザードで簡単にできますが、区切り文字がない文字列を分解したい時にはこの方法は使えません。

 こんな時には、LEFT、MID、RIGHTという3つの関数を使うと、指定した位置の文字列を取り出すことができます。今回はこれらの関数の活用テクを紹介します。

LEFT関数

 LEFT、MID、RIGHT関数は、文字列の一部分を取り出す関数です。それぞれの関数について順番に解説していきます。

 まず、LEFT関数から解説します。LEFT関数は、文字列の先頭から指定した文字数分だけ文字を取り出す関数です。「=LEFT(文字列,文字数)」という書式で記述します。

 「食品売り場 商品コード表」(①)の例を使って、実際にやってみましょう。この例では、「ME1234-0205」のようにハイフンを含めた11桁の商品コードが決められているものとします。この商品コードから、分類コード(先頭から2文字)をB列の「分類コード」欄に取り出してみましょう(ちなみに、分類コードの「ME」は「肉」、「BE」は「野菜」、「ML」は「乳製品」、「FI」は「鮮魚」を表すものとします)。

 先頭から2文字分の文字列を取り出したいので、セルB3に「=LEFT(A3,2)」(②)と入力します。

 [Enter]キーを押して数式が確定されると、2文字の分類コードが表示されました(③)。

 オートフィル機能を使って、B列の他のセルにも数式をコピー(④)します。

 B列に分類コードがすべて取り出されました(⑤)。

MID関数

 次に、MID関数を使ってC列に製品番号を取り出してみましょう。MID関数は、文字列を指定した位置から指定した文字数分だけ取り出す関数で、「=MID(文字列,開始位置,文字数)」という書式で記述します。

 この例では、商品コードの3~6文字目を製品番号とします。したがって、数式の「開始位置」には「3」、取り出す「文字数」には「4」を指定します。

 セルC3に「=MID(A3,3,4)」(①)と入力します。

 [Enter]キーを押して数式が確定されると、4文字の製品番号が表示されました(②)。

 オートフィル機能を使って、C列の他のセルにも数式をコピー(③)します。

 C列に製品番号がすべて取り出されました(④)。

RIGHT関数

 最後に、RIGHT関数を使って、D列に賞味期限を取り出してみます。RIGHT関数は、文字列の終わりから指定した文字数分だけ文字を取り出す関数で、「=RIGHT(文字列,文字数)」という書式で記述します。

 この例では、商品コードの終わりから4文字分の文字が賞味期限を表しています。

 セルD3に「=RIGHT(A3,4)」(①)と入力します。

 [Enter]キーを押して数式が確定されると、4文字の賞味期限が表示されました(②)。

 オートフィル機能を使って、D列の他のセルにも数式をコピー(③)します。

 D列に賞味期限がすべて取り出されました(④)。

 分解したデータは、例えば、オートフィルターなどを使って分類ごとにまとめたり、賞味期限の順番(昇順/降順)に並べ替えたりするなど、集計や分析などに使うことができますね。

文字列の中から指定した一部の文字列を取り出す

 今回は、LEFT、MID、RIGHTという3つの関数を使って、商品コードの文字列から指定した位置の文字列を取り出す方法を解説しました。

 このテクニックはさまざまな場面で応用できます。例えば、1つのセルに入力された住所から、都道府県だけを別のセルに取り出すことができます。また、生年月日を、西暦、月、日に分解したりもできます。

 ぜひ応用して使ってみてくださいね。

今月のExcelTips