Excel。先頭の文字が合致するデータを簡単に検索したいけど、どうしたらいい。
<VLOOKUP+LEFT関数>
左2文字がカテゴリーを表している商品コードから、そのカテゴリーを別表のデータを使って、どのカテゴリーに分類されているかがわかる表をつくるには、どうしたら、効率よく作ることができるでしょうか?
次の表を使って確認していきます。
A列の商品コードの左2文字が、分類コードになっています。
分類コードから該当するカテゴリーを、C列のカテゴリーを検索して表示したいというわけです。
このような表にしたいわけです。
今回のようなサンプルならば、目視・自力で対応することもできますが、件数が増えれば、そのようにはいきません。
このような表ならば、VLOOKUP関数をつかうというのは、イメージできますが、どうやって、分類コードを作るのかを考えがちになってしまいます。
新しい列を追加して、例えば、フラッシュフィルをつかったり、LEFT関数をつかったりして、分類コードを作るというのが、スタンダードかもしれません。
ただ、それでは、新しい列を追加するなど、作業工程が増えてしまいます。
VLOOKUP関数の引数の検索値は、別に商品コードや、従業員コードのような、固定したデータしか設定できないわけではなく、関数も普通につかうことができます。
今回は、左から2文字が、分類コードということなで、シンプルに、LEFT関数をつかうことで、抽出することができます。
C2の数式を確認しておきましょう。
=VLOOKUP(LEFT(A2,2),$E$2:$F$4,2,FALSE)
検索値に、LEFT(A2,2)とLEFT関数をつかって、左から2文字を検索値としてつかっています。
今回のような場合には、VLOOKUP+LEFT関数というネストで対応できましたが、たまたま、分類コードが2ケタと統一されていたからLEFT関数をつかったわけです。
分類コードの文字数が、バラバラだった場合は、「-(ハイフン)」が何文字目にあるのかを、見つけて、左からその文字目をつかうようにしなければいけません。
C2の数式を次のように修正する必要があります。
=VLOOKUP(LEFT(A2,FIND("-",A2)-1),$E$2:$F$4,2,FALSE)
LEFT関数の中に、FIND関数をつかって、「-(ハイフン)」が何文字目にあるのかを算出させて、その値から1を減算した値を算出する必要があります。
まだ「-(ハイフン)」があるので、区切られているところがわかるのですが、「-(ハイフン)」がないと、どこまでが、分類コードなのかというルール化がされていないと対応することができません。
計算式でも算出できるなど、色々なことを考えて管理することが大切になります。