エクセル(Excel)で複数条件に応じて表示を分岐させる方法には、いくつか存在します。
例えば、その代表的なエクセル関数が、IF関数やIFS関数です。
しかし、それ以外にもCHOOSE関数という関数が存在します。
この関数は、IF関数ほどメジャーではありませんが、引数の設定が少なくて済むという点で、利便性が高いです。
さらに、CHOOSE関数は、MACH関数やSUM関数など他の関数と組み合わせて利用すると、さらに実用性がUPします。
今回の記事では、ExcelのCHOOSE関数の使い方を実例と合わせながら紹介していきます。
エクセルのCHOOSE関数とは
エクセルのCHOOSE関数の読み方は「チューズ」です。
1、2、3などの整数のインデックス番号に合わせて、どんな文字を表示させるかを設定できる関数です。
例えば、下の例のように、C3セルに「=CHOOSE(B3,"バナナ","みかん","リンゴ")」と入力すると、B3セルの「1」という数値に応じて、CHOOSE関数の引数で設定した「バナナ」という文字が表示されます。
これだけだと、CHOOSE関数の使い方やメリットがイメージしづらいと思うので、次に見出しから詳しく紹介していきます。
CHOOSE関数の構文と引数
CHOOSE関数の構文と引数は、以下のとおりです。
=CHOOSE(インデックス,値1,[値2],[値3], ...)
それぞれの引数の詳細は、以下のとおりです。
第1引数「インデックス」: 必ず指定します。 どの値の引数が選択されるかを指定します。 インデックスには 1 ~ 254 の数値、または 結果が1~254となる数式またはセル参照を指定します。(例:2、A5、MATCH(B1,A2:A4,0))
第2引数以降「値」:値 1 は必ず指定します。値 2 以降は省略可能です。 1 ~ 254 個の値引数を指定します。第1引数のインデックス番号に基づいて、表示させたい値を設定します。 引数には、数値、セル参照、数式、関数、または文字列を指定できます。(例:”バナナ”、D3、A1:A10、AVERAGE(A1:A5))
シンプルな使い方を具体的に1つ紹介します。
下の例のように、C3セルに以下のCHOOSE関数を挿入します。
=CHOOSE(B3,"バナナ","みかん","リンゴ","栗")
そうすると、B3セルの「3」のインデックス番号に合わせて、CHOOSE関数の4つ目の引数「リンゴ」が表示されます。
B3セルの数値を「4」に変更すると、CHOOSE関数の5つ目の引数「栗」が表示されます。
このように、CHOOSE関数とは、インデックス番号に合わせて、複数の条件で表示方法を分岐することが出来る関数です。
引数「値」は、以下のように直接セル番号を指定することもできます。
=CHOOSE(B3,E2,E3,E4,E5)
CHOOSE関数とIF関数との違い
それでは、IF関数とCHOOSE関数の違いは何なのか解説します。
もし、IF関数で、B3セルが1~4かの条件によって、"バナナ","みかん","リンゴ","栗"のどれかを分岐させて表示させたい場合はどうすればよいでしょうか。
その場合、IF関数の中にIF関数を挿入する「入れ子」というテクニックを使って関数を作成する必要があり、関数が長くなり複雑となります。
=IF(B3=1,"バナナ",IF(B3=2,"みかん",IF(B3=3,"リンゴ",IF(B3=4,"栗","-"))))
一方、上の見出しでも紹介したとおり、CHOOSE関数を利用すると、引数が少なくなり、関数は短くなります。
=CHOOSE(B3,"バナナ","ミカン","リンゴ","栗")
関数も短くて、引数の設定もシンプルだよね。
もちろん、分岐の条件次第では、IF関数の方が使いやすい場合もあるので、それぞれのケースで判断が必要です。
IF関数を複数条件で使う方法は、以下の記事を参考にしてください。
CHOOSE関数を使った実例1(基本版)
それでは、実際にCHOOSE関数を使った実例を紹介します。
下の表のC2セルに入力される値(1~3)によって、C5セルから C7セル(赤枠のセル) に表示する内容を切り替えします。
C2セルが「1」の場合はプラン1の内容、「2」の場合はプラン2の内容、「3」の場合はプラン3の内容が表示されるように、CHOOSE関数を挿入します。
まずは、プランにあった旅行先が表示されるように、C5セルにCHOOSE関数を挿入します。
1つ目の引数「インデックス」はC2、対応する値はF5、G5、H5セルのなので、以下のように関数を挿入します。次の工程で、CHOOSE関数をコピペしたいので、インデックス番号には$マークを付けて絶対参照で固定します。
=CHOOSE($C$2,F5,G5,H5)
次に、C6、C7セルにもCHOOSE関数を挿入します。
CHOOSE関数を挿入したC5セルの右下にカーソルを合わせると、十字キーが表示されるので、ダブルクリックもしくは下にドラッグして、CHOOSE関数をコピペします。(オートフィルの利用)
それでは、CHOOSE関数の結果を確認します。
C2セルを「2」から「3」に変更すると、C5~C7の文字がプランに合わせて自動で変更されました。
CHOOSE関数を使った実例2(インデックスの表記変更)
続いて、CHOOSE関数を使った2つ目の実例を紹介します。
上で紹介した例では、インデックス番号を指定するC3セルは、「1」「2」「3」の数値を入力しました。
このセルを、「プラン1」「プラン2」「プラン3」といったように、見た目上の表示形式を変更することが出来ます。
まずは、C3セルを右クリックし、右クリックメニューの「セルの書式設定」を選択します。
そして、セルの書式設定画面で「表示形式」タブの「ユーザー定義」を選択し、画面中央の種類BOXに「”プラン” #」と入力し、「OK」を押して画面を閉じます。
”プラン” #
そうすると、インデックスのC3セルに「3」と入力すると「プラン 3」と表示されます。
このように、セルの書式設定を利用することで、セルの見た目(表示形式)を変更することが出来るので、右側の表記と一致させることができます。
CHOOSE関数を使った実例3(MACH関数と組み合わせる)
続いて、CHOOSE関数を使った3つ目の実例を紹介します。
CHOOSE関数とMATCH関数を組み合わせることで、第1引数「インデックス」が参照するセルを、数値ではなく「プランA」「プランB」「プランC」といったプルダウンで選択する文字でも利用することができます。
それでは、以下の見出しで、CHOOSE関数とMATCH関数を組わせる方法を紹介します。
MACH関数の使い方
MATCH関数(マッチ)は、指定した検索範囲内で、数値や文字列などの検索値が、どの位置にあるかを数値(〇〇列目、▲▲行目)で返す関数です。
MATCH関数を使用することで、探したい値が選択範囲の何行目(何列目)にあるのかを調べることが出来ます。
MATCH関数の構文は、以下のとおり3つの引数で構成されています。
=MATCH(検査値,検査範囲,[照合の型])
下の例のように、MATCH関数を利用することで、「C」という文字が「B2~E2」セルの何番目に位置しているのかを数値で返すことが出来ます。
=MATCH(B5,B2:E2,0)
MATCH関数の使い方を詳しく知りたい方は、以下の記事を参考にしてください。
CHOOSE関数とMACH関数を組み合わせる方法
それでは、CHOOSE関数とMACH関数を組み合わせた使い方を解説します。
まずは、プルダウンリストを設定するため、C2セルをクリックしてから、「データ」タブの「データの入力規則」を選択します。
入力値の種類は「リスト」を選び、元の値にはプルダウンリストに設定したいセル範囲を選択します。
そうすると、C2セルはプルダウンリストが設定されます。
次に、C6セルにCHOOSE関数を挿入します。
第1引数「インデックス」にはMATCH関数を挿入し、C2セルの文字が、F5~H5セルの何番目に位置するかを判定し、数値で返すように設定します。
=CHOOSE(MATCH($C$2,$F$5:$H$5,0),F6,G6,H6)
関数の中に関数を挿入する、・・こんなテクニックを「入れ子」「ネスト」っていうよ。
そうすると、C2セルの「プランA」という文字が分岐の条件となり、「四国」という文字が表示されます。
後は、下のC7、C8セルにもCHOOSE関数をコピペすれば完成です。
このように、プルダウンとMATCH関数を組み合わせて活用することで、複数の文字に応じて表示を分岐できます。
CHOOSE関数を使った実例4(AVERAGEIF関数と組み合わせる)
CHOOSE関数は、AVERAGEIF関数(アベレージイフ)を組み合わせて利用することもできます。
AVERAGEIF関数は、範囲内の条件に一致するすべてのセルの平均値を算出する関数です。
=AVERAGEIF(範囲, 検索条件, [平均範囲])
下の表のG6セルにCHOOSE関数を挿入し、「全体の平均体重」「男性だけの平均体重」「女性だけの平均体重」を表示させる方法を紹介します。
まずは、CHOOSE関数をG6セルに挿入し、第1引数に1~3の数値を入力するG2セルを指定します。
次に、第2引数「値1」に、全員の体重合計を算出するために「AVERAGE(D3:D9)」を指定します。
=CHOOSE(G2,AVERAGE(D3:D9),
次に、第3引数「値2」に、男性だけの体重合計を算出するように、「AVERAGEIF(C3:C9,"男",D3:D9)」を指定します。
=CHOOSE(G2,AVERAGE(D3:D9),AVERAGEIF(C3:C9,"男",D3:D9),
最後に、第4引数「値3」に、女性だけの体重合計を算出するように、「AVERAGEIF(C3:C9,"女",D3:D9)」を指定します。
=CHOOSE(G2,AVERAGE(D3:D9),AVERAGEIF(C3:C9,"男",D3:D9),AVERAGEIF(C3:C9,"女",D3:D9))
CHOOSE関数が確定させます。
G2セルの1~3の集計方法(男性、女性、全体)に合わせて、平均体重を表示することができます。
CHOOSE関数を使った実例5(SUMIF関数と組み合わせる)
CHOOSE関数は、SUMIF関数(サムイフ)を組み合わせて利用することもできます。
SUMIF関数は、範囲内の条件に一致するすべてのセルの合計値を算出する関数です。
=SUMIF(範囲, 検索条件, [平均範囲])
下の表のG6セルに以下のCHOOSE関数を挿入することで、「全店舗の販売高」「関東だけのの販売高」「関西だけのの販売高」を表示させることができます。
=CHOOSE(G2,SUM(D3:D9),SUMIF(C3:C9,"関西",D3:D9),SUMIF(C3:C9,"関東",D3:D9))
CHOOSE関数を使った実例6(SUM関数と組み合わせる)
SUM関数の中にCHOOSE関数を挿入して、合計する範囲を条件によって自在に切り替えすることも可能です。
下のF8セルに、以下のSUM関数を挿入します。F2セルの「1~4」の数値に応じて、C3セルからどれだけ下のセル範囲までを集計するかを変更しています。
=SUM(C3:CHOOSE(F2,C3,C4,C5,C6))
CHOOSE関数でセル範囲を指定することも可能(スピルの利用)
Excelのバージョンで、Excel2021以降やMicrosoft 365(サブスク)を利用している場合は、CHOOSE関数でセル範囲を活用することも可能です。
下の表のC5セルに以下のCHOOSE関数を入力し、第2引数以降の値にはセル範囲を指定します。
=CHOOSE(C2,F5:F7,G5:G7,H5:H7)
CHOOSE関数を「Enter」キーで確定します。
そうすると、C5セルにしかCHOOSE関数を挿入していませんが、C6セルやC7セルにも、CHOOSE関数が自動で拡張されて挿入されました。
Excel2019以前のバージョンでは利用することはできませんが、今後こういった使い方がどんどん広まっていくことが予想されます。
この機能は、エクセルの「スピル」といい、数式の結果が複数ある場合は、他のセルにも数式が反映される機能です。