CHOOSE 関数の使い方はいろいろあると思うのですが、とても基本的なお話を。
CHOOSE 関数は、インデックスを使って値の引数リストから値を返す関数です。(最大 254)
構文はこんな感じ。
=CHOOSE(インデックス, 値 1, [値 2], ...)
第 1 引数のインデックスに 1 から 254 までの数値 (セル参照、数式でも結果的に数値なら OK) を指定し、第 2 引数以降に第 1 引数に対応させる値を指定します。説明の中にある「値の引数リスト」というのが 第 2 引数以降ということですね。
たとえば、セル A1 に 1 から 3 までの数値が入るとして、
セル A1 の数値が
1だったら 項目A (1 コ目)
2 だったら 項目B (2 コ目)
3 だったら 項目C (3 コ目)
を表示したい (返したい) ときの数式がこちら。
セル A1 が 2 なので 項目B が返っているのがわかります。
返したい値がセルにあるのなら、こんな感じ。
単純に、インデックスとして指定される数値に対応させる値を第 2 引数以降に順番に指定します。
インデックスが 1 から 10 までなら 10 個、30 までなら 30 個・・・で、最大 254 個。
(制約としては 254 までいけるけど利用することを考えたら現実的ではない。)
CHOOSE 関数の引数の役割が理解できたら次へどうぞ。
CHOOSE 関数を使って表示内容を切り替える
セル B1 に入力される値によって、セル B6 から B8 (灰色のセル) に表示する内容を切り替えたいとします。
1 だったらピンク、2 だったら水色、3 だったら薄緑のセルに用意された値が返ってくるようにしたいです。
インデックスはセル B1、対応する値はセル E6 と F6 と G6 なので、数式は「=CHOOSE(B1,E6,F6,G6)」です。
インデックス、すなわちセル B1 の値を切り替えると表示内容が変わります。
項目Aだけでなく B も C も対応する値を表示したいので、セルの参照がずれてしまわないように調整して数式をコピーします。
セル B1 の値を切り替えると表示される内容が切り替わるようになりました。
表示形式を使う
インデックスは数値でなければならないので、インデックスに「Case 1」「Case 2」「Case 3」のように数字と文字を組み合わせて指定したい場合は、表示形式で見た目だけ制御するのもありです。
セルに格納されるのは 1 から 3 までの数値だけれど、「“Case ”#」などの表示形式を適用すればインデックスのセルにも「Case 3」などのように表示でき、右側の一覧の項目と一致させられます。
MATCH 関数と組み合わせる
数字を含まない文字列をインデックスにしたいこともあります。
たとえば、「プランA」「プランB」「プランC」を切り替えたいときに、CHOOSE 関数のインデックスにこの文字列を指定すると、エラーになります。(しつこいようですが、CHOOSE 関数のインデックスは数値でなければなりません。)
こんなときは、セル範囲で指定した項目を検索し、位置 (左から何番目、上から何番目) を返してくれる MATCH 関数を組み合わせるのも 1 つの手です。
たとえば、下図のセル D1 の数式では、セル B1 の文字列 (プランA) が、セル E5 から G5 の左から何番目にあるのかを求めています。
CHOOSE 関数のインデックス (第 1 引数) として、MATCH 関数で求めた位置を利用すると、インデックスの元となるプランは文字列のままでも対応できます。
セル D1 のように作業セルを参照するのではなく、関数をネストさせて 1 つの数式でまとめるのなら、CHOOSE 関数のインデックス (第 1 引数) の部分に、MATCH 関数の数式を組み込むのもありでしょう。
もちろん、CHOOSE 関数の数式を下方向のセルにコピーするのなら、絶対参照などのセル参照の固定を行って下さい。
セル D1 で MATCH 関数をためす → MATCH 関数の数式部分をコピーしてネストする とやるのなら、このあと セル D1 の数式は消しても OK です。
CHOOSE 関数っていろんな場面で使えるので特徴を覚えておくとよいですよ。
今回のような表示内容の切り替えだけでなく、日付を元に四半期を表示したいなんていうときにも使えます。
石田 かのこ