8/18/2021

Excel。先頭の文字が合致するデータを簡単に検索したいけど、どうしたらいい。【First character】

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を減算した値を算出する必要があります。


まだ「-(ハイフン)」があるので、区切られているところがわかるのですが、「-(ハイフン)」がないと、どこまでが、分類コードなのかというルール化がされていないと対応することができません。


計算式でも算出できるなど、色々なことを考えて管理することが大切になります。