CHOOSE関数 ● 引数のリストから値を取り出す

Excelの CHOOSE(チューズ)関数の使い方を紹介します。

CHOOSE関数は、『「1」のときは「○○」、「2」のときは「△△」、「3」のときは「□□」……』のように、数値の「1、2、3……」に対して値の割り振りを行う関数です。

スポンサーリンク

書式

引数のリストから値を取り出す
=CHOOSE(インデックス, 値1, [値2]…)

インデックス]に指定した数値が「1」の場合は[値1]、「2」の場合は[値2]……、というように、[インデックス]に対応する[値]が返されます。
インデックス]が「1」より小さいか、[値]の個数より大きい場合、エラー値「#VALUE!」が返されます。

引数

引数 説明
インデックス [値]リストのうち何番目の値を取り出すのかを指定する。
値1, 値2, … 取り出す値を指定する。最大254個まで指定できる。セル参照も指定可能。

使用例1…「在庫区分No」から「在庫区分」名を表示する

図1では、表の 3列目に入力されている「在庫区分No」に対応する在庫区分名を、CHOOSE関数を使用して表示しています。在庫区分Noと在庫区分名の対応は、

  1. 在庫品
  2. お取り寄せ
  3. メーカー直送

とします。

=CHOOSE(インデックス, 値1, 値2, 値3)

セルD3 | =CHOOSE(C3,"在庫品","お取り寄せ","メーカー直送")

図1 セルD3に CHOOSE関数を入力してセルD7までコピーすると、在庫区分No に応じた在庫区分名が表示される。

メモ

「#VALUE!」エラーを避けるために
インデックス]が[値]の個数より大きい場合、エラー値「#VALUE!」が表示されます。例えば、1位~3位までに「金メダル、銀メダル、銅メダル」を表示させようとすると、下図のように4位以下に「#VALUE!」が表示されます。

エラー値が表示されないようにするには、IFERROR関数と組み合わせて次のように式を立てます。

=IFERROR(CHOOSE(C3,"金メダル","銀メダル","銅メダル"),"")

Excel 2019以降であれば、SWITCH関数を使う方法もあります。SWITCH関数なら 1つの関数で 1位~3位だけに目的のデータを表示できます。

=SWITCH(C3,1,"金メダル",2,"銀メダル",3,"銅メダル","")

使用例2…セルに「①、②、③、①、②、③…」と繰り返し表示する

CHOOSE関数は、対応付けできるのが「1」から始まる整数に限定され、使いどころを選ぶ関数です。しかし、裏技的な使い方で威力を発揮する関数でもあります。図2では、CHOOSE関数を利用して「①、②、③、①、②、③…」と繰り返す丸数字を表示しています。
引数の[値]を変えれば、アルファベットやローマ数字などの繰り返しを表示することも可能です。

=CHOOSE(インデックス, 値1, 値2, 値3)

セルB2 | =CHOOSE(MOD(ROW(A3),3)+1,"①","②","③")

図2 セルB2にCHOOSE関数を入力して下方向にコピーすると、「①、②、③、①、②、③……」と繰り返す番号を表示できる。

インデックス]に指定した「MOD(ROW(A3),3)+1」は、数式を下方向にコピーしたときに「1、2、3、1、2、3…」と繰り返す数値を返します。ROW関数は引数に指定したセルの行番号を求める関数、MOD関数は割り算の余りを求める関数です。

使用例3…指定した数値に応じて合計範囲を切り替える

CHOOSE関数の引数[値]には、セル参照を指定することもできます。

例えば、「=CHOOSE(A2,D1:D3,E1:E3)」とすると、セルA2の値が「1」の場合はセルD1~D3を、「2」の場合はセルE1~E3を返します。図3では、このCHOOSE関数をSUM関数の引数に指定して、セルA2の値に応じて合計範囲を切り替えています。

=CHOOSE(インデックス, 値1, 値2)

セルB2 | =SUM(CHOOSE(A2,D1:D3,E1:E3))

図3 セルA2の値が「1」の場合はセルD1~D3が合計され、「2」の場合はセルE1~E3が合計される。

例えば、複数の表を切り替えながら VLOOKUP関数で表引きするようなケースで利用できるでしょう。

スポンサーリンク

関連記事