【関数】通し番号に対応する値を返すことができる「CHOOSE」の使い方
AさんAさん

文字をいちいち入力するのが面倒なので、数値を入力し、それに対応する選択肢を自動で表示されるようにしたいですが、何か良い方法ありますかね?

森田森田

その場合は、関数のCHOOSEを活用すると良いですよ!
では、CHOOSEの使い方について解説していきますね。

はじめに

この記事は関数の概要とIFの使い方を把握していることが前提です。

参考記事

関数の概要とIFの使い方の詳細は以下の記事をご参照ください。


通し番号の数値を条件に値を切り替えたい場合は「CHOOSE」が有効

レコードの入力時等、通し番号の数値をもとに決められた値を返したい場合があります。

実務でよくあるのは、月に応じて事業年度や四半期を振り分ける等です。

こうした場合、値の種類が少ない場合はIFで対応することが一般的です。

しかし、値の種類が増えるほど、比例して複数のIFをネストしなければならず、数式の可読性が悪くなります。

こんな場合、関数のCHOOSEを使うことで数式をシンプル化できます。
CHOOSEは「チューズ」と読む。

CHOOSEを使うことで、1つの数式で通し番号に対応する値を返すことが可能です。

CHOOSEの構文

CHOOSEの構文は以下の通りです。

=CHOOSE(インデックス,値1,[値2],…)
インデックスを使って、引数リストから特定の値または動作を1つ選択します。

引数名 必須 データ型 説明
インデックス 数値 「値n」と連動するセル(値が1~254の数値)を指定します。
1 すべて 「インデックス」の値が「1」の場合に返す値または数式を指定します。
2
※値3以降も同様
すべて 「インデックス」の値が「2」の場合に返す値または数式を指定します。

引数「値n」は最大254まで指定可能。
引数「インデックス」が 「1」 未満、引数「値n」の数を超えた数値、文字列の場合、エラー値「#VALUE!」が表示。
引数「インデックス」を小数点以下まで指定した場合、整数以外は切り捨てされる。

【参考】CHOOSEは「検索/行列関数」

あくまで参考情報となりますが、CHOOSEはリボン「数式」タブの関数ライブラリの「検索/行列」に分類されています。

実際にCHOOSEを活用する際は、以下で解説しているように直接入力で挿入していきましょう。

CHOOSEの使用結果イメージ

CHOOSEを使い、通し番号に対応する値を返すイメージは以下の通りです。

今回は「血液型番号」列の数値に対応する血液型を「血液型」列に返しました。

上記のように計算列としてCHOOSEを使う場合、1レコードにつき1つの関数を使います。
「計算列」とは、数値/日付/時刻の列の値を計算した新たな列のこと。

ベースの数式をセットしたら、他のセルへペーストしましょう。

【参考】CHOOSEで通し番号に応じて数式を切り替えることも可能

先述の通り、CHOOSEは値を返す方法が一般的ですが、引数「値n」へ任意の数式をセットしておくことで、通し番号に対応する数式を実行させることも可能です。

一例として、CHOOSESUBTOTALと同機能にしたものが以下です。

I2セルの数値に応じて、J2セルのCHOOSEの集計方法が切り替わり、G列の数値を対象に平均・個数・最大値・最小値・合計等を算出できます。

参考記事

SUBTOTALの詳細については以下の記事をご参照ください。

CHOOSEの数式の挿入手順

上記の結果を得るための手順は以下の通りです。

  1. 関数を挿入するセルを選択
    ※今回はD2セル
  2. =cho」等と入力
  3. サジェストから「CHOOSE」を選択し、「Tab」キーで確定
  4. 通し番号(インデックス)となるセルを選択
    ※今回はC2セル
  5. コンマ(,)を入力
  6. 1つ目の値を入力
    ※今回は「A
  7. コンマ(,)を入力
  8. 2つ目の値を入力
    ※今回は「B
  9. コンマ(,)を入力
  10. 3つ目の値を入力
    ※今回は「O
  11. コンマ(,)を入力
  12. 4つ目の値を入力
    ※今回は「AB
  13. Enter」キーで確定
  14. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はD3~D11セルへペースト

手順②の際にIMEを半角英数モードにすること。
テーブルの場合、手順⑭は不要(全レコードへ数式が自動的にコピーされる)。

【応用】値の種類を可視化したい場合はVLOOKUPを使うこと

CHOOSEの特徴として、通し番号に対応する値を引数「値n」へ定数で指定することが一般的です。

この特徴により、値の種類が多ければ多いほど、第三者がパッと見で、どの数値がどの値を返すのかが分かりにくくなってしまいます。

こうした場合は、ワークシート上にCHOOSEの引数「インデックス」・「値n」の内容を表(マスタ)にまとめた上でVLOOKUPを使った方が便利です。

これにより、第三者から見て通し番号別の値が分かりやすくなるとともに、値の内容を変更する際も表側を修正するだけで済み、メンテナンス工数も下がります。

また、値の種類が多い場合もVLOOKUPの方が可読性の高い数式にすることが可能です。

CHOOSEは値の種類の数が少なく、表にするまでもない場合に優先して使うと良いでしょう。
値の種類は多くとも10前後を推奨。

ぜひ、ケースバイケースで使い分けてください。

参考記事

VLOOKUPの詳細については以下の記事をご参照ください。

サンプルファイルで練習しよう!

可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。

サンプルファイル_ワークシート関数_CHOOSE.xlsx

※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)

ブックを開いたら、次の手順を実施してください。(今までの解説のまとめです)

  1. 関数を挿入するセルを選択
    ※今回はD2セル
  2. =cho」等と入力
  3. サジェストから「CHOOSE」を選択し、「Tab」キーで確定
  4. 通し番号(インデックス)となるセルを選択
    ※今回はC2セル
  5. コンマ(,)を入力
  6. 1つ目の値を入力
    ※今回は「A
  7. コンマ(,)を入力
  8. 2つ目の値を入力
    ※今回は「B
  9. コンマ(,)を入力
  10. 3つ目の値を入力
    ※今回は「O
  11. コンマ(,)を入力
  12. 4つ目の値を入力
    ※今回は「AB
  13. Enter」キーで確定
  14. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はD3~D11セルへペースト

本記事の解説と同じ結果になればOKです!

さいごに

いかがでしたでしょうか?

CHOOSEは通し番号の数値を条件に値の切り替えに役立つ関数の一つです。

数値の種類が多くなく、定数で記述できる範囲のものを設定する機会があれば、覚えてみても良いでしょう。

なお、CHOOSE以外にもExcelでのデータ整形の各種テクニックを拙著で解説していますので、こちらも参考にしてみてください。

ご参考になれば幸いですm(_ _)m

森田森田

CHOOSEとセットで覚えておいた方が良い関数は、条件分岐ができる「IF」と任意の表からデータ転記できる「VLOOKUP」です。
個人的な感覚で言えば、IFVLOOKUPの中間のケースでCHOOSEが役立ちます。

基本的にはIFVLOOKUPの方が実務で使用する頻度が圧倒的に高いので、まずはこれらを覚えてからCHOOSEを覚えることをおすすめします。
その他、特定のキーワードが何行目/何列目にあるかを数値で返すことができる「MATCH」も覚えておくと、CHOOSEと組み合わせて表のレイアウトを変更する等で役立ちますよ!