条件に応じて処理を分岐させるときは、IFやIFSといった関数を使用するのが一般的だ。これらのほかにも、Excelには「条件分岐処理を行える関数」がいくつか用意されている。ということで、今回は関数CHOOSEの使い方を紹介していこう。関数IFSに比べるとマイナーな関数であるが、「引数の指定が少なくて済む」という利点がある。
関数CHOOSEを使ったデータの取得
今回は、関数CHOOSEを使って条件分岐を行う方法を紹介していこう。CHOOSEはインデックス番号(1、2、3、…の整数)に応じて条件を分岐させる関数となる。このため、関数MATCHと組み合わせて使用されるケースが多い。
まずは、関数CHOOSEの書式から紹介していこう。関数CHOOSEを使用するときは、以下のように引数を指定する。
◆関数CHOOSEの書式
=CHOOSE(インデックス番号, 1の処理, 2の処理, 3の処理, …)
第1引数となる「インデックス番号」にはセル参照を指定するのが一般的だ。続いて、この「インデックス番号」が数値の「1」であった場合の処理、「2」であった場合の処理、「3」であった場合の処理を順番に記述していく。
少しわかりにくいと思うので、具体的な例を使って解説していこう。
たとえば、ある商店街がイベントを開催するとしよう。このイベントを実施するには、「テント、長机、椅子」をレンタルし、オリジナルの「Tシャツ、ハッピ、のぼり」を作成しなければならない。その料金(単価)を調べたのが以下の図だ。
今回は、「MNレンタル」、「Eveアシスト」、「Rent-S」、「CxRent」といった4つのショップで料金(単価)を調査した。この調査結果をもとに「どこに依頼したら最も安く済むか?」をExcelで比較検討してみよう。
ということで、各商品の必要数(数量)と、その金額を計算する表を以下の図のように作成した。現時点では「どのショップに依頼するか?」を決めていないので、「単価」の列は空白になっている。その代わりに、ショップを番号で選択するためのセル(D14セル)を用意してある。
このような場合に関数CHOOSEを使うと、「単価」のデータを自動取得することが可能となる。順番に解説していこう。
今回は各ショップの番号(1~4)をD14セルに指定するので、関数CHOOSEの第1引数にはD14を指定する。後ほど、この関数CHOOSEをオートフィルでコピーしたときにセル参照が変化しないように、このセル参照だけは絶対参照で記述する。
続いて、ショップの番号が「1」の場合、「2」の場合、「3」の場合、「4」の場合のときに取得するデータを順番に指定していく。ここでは「テント」の単価を取得したいので、それに対応する「D5,E5,F5,G5」のセル参照を順番に指定していけばよい。
「Enter」キーを押して関数の入力を確定すると、以下の図のような結果が得られる。現在はショップ番号に「1」が入力されているので、D5セルの値が取得されることになる。
あとは、この関数CHOOSEをオートフィルでコピーするだけ。これで全商品の「単価」を自動取得できるようになる。もちろん、取得した「単価」をもとに「金額」と「小計」も自動計算される。
この結果を見ると、「MNレンタル」に依頼した場合の料金は16万7,940円になる、ということを把握できる。他のショップに依頼した場合の料金を知りたいときは、ショップ番号の数値を変更すればよい。
たとえば、ショップ番号を「2」に変更すると、関数CHOOSEによりE5~E11のデータが自動取得され、その「単価」での計算結果が表示される。今回は、小計が18万3,740円という結果になった。
同様に、ショップ番号を「3」に変更すると「Rent-S」の単価で計算した結果、ショップ番号を「4」に変更すると「CxRent」の単価で計算した結果を得ることができる。
このように、インデックス番号(1、2、3、4、…)を変更することにより条件分岐を行うのが関数CHOOSEの基本的な使い方となる。