3/25/2022

Excel。VLOOKUP関数を使わずに多分岐はLOOKUP関数で手早く算出できます。【Multi-branch】

Excel。VLOOKUP関数を使わずに多分岐はLOOKUP関数で手早く算出できます。

<LOOKUP関数>

多分岐の処理をExcelで行うには、IF+IF関数のネスト。

IFS関数。

VLOOKUP関数やXLOOKUP関数など、様々な方法があります。


一番やりやすい、わかりやすい方法で処理するのがいいわけですが、意外とLOOKUP関数でも算出することができます。


次の表を用意しています。


E列に合計点によってA~E判定を行いたいわけです。


VLOOKUP関数などで求める場合と同じように、事前にG1:H6の判定表を用意しております。

なお、このような判定表は、昇順で作る必要があります。

降順で作成するとうまくいきません。


基本的には、IF+IF関数のネストで数式をつくると、判定表のような別表を用意しなくてすみますが、ネストが多くなり、可読性も悪くなってしまいます。


IF関数で数式をつくってみると、

=IF(D2>=160,"A",IF(D2>=140,"B",IF(D2>=120,"C",IF(D2>=80,"D","E"))))

やはり、かなり長いですね。


VLOOKUP関数で算出しようとすれば、E2の数式は、次のようになります。

=VLOOKUP(D2,$G$2:$H$6,2,TRUE)

4番目の引数をTRUEで設定することで、近似値の算出をおこなうことができるので、判定を算出できるわけです。


また、XLOOKUP関数をつかった数式だと、

=XLOOKUP(D2:D11,G2:G6,H2:H6,,-1,1)

スピル機能をつかうので、引数の検索値は、D2:D11という範囲で設定します。


XLOOKUP関数は、引数が多いですが、細かい設定ができるのも特徴ですね。



そこで、LOOKUP関数ならどうなるのでしょうか?


 

E2に次の数式を設定します。

=LOOKUP(D2:D11,G2:H6)

たったこれだけです。


列番号もなければ、検索方法もありません。


LOOKUP関数の配列方式で、手早く算出することができます。


引数を確認しておきます。

検索値は、D2:D11。スピル機能をつかうので、一つのセルではなく、範囲選択で設定することができます。


二つ目の引数の配列には、G2:H6。

判定表の見出し行を除いたデータ部を範囲選択します。

絶対参照する必要もありません。


これで、算出することができました。


多分岐は、色々な方法で算出することができますが、LOOKUP関数という方法もありますので、使いやすいものをつかってみるといいかもしれませんね。