「Excelで複数の条件に応じて違う値を出したいんだけど、IF関数だとネストが深くなって見にくい…」
そんな悩みを抱えていませんか?
複雑な条件分岐に頭を抱えている方に朗報です!ExcelのCHOOSE関数を使えば、指定したインデックス番号(1, 2, 3…)に応じて、あらかじめ設定した値(文字列、数値、セル参照など)を返すことができます。
この関数を使いこなせば、多重なIF関数のネストを避け、数式を分かりやすくシンプルに保つことが可能に。ドロップダウンリストと組み合わせれば、データ表示を動的に切り替えることも自由自在です。
この記事では、CHOOSE関数の基本的な使い方から、実務で役立つ具体的な使用例、さらには使う上での注意点まで、徹底的に解説していきます。
この記事を読めば、あなたのExcel作業が劇的に効率化されること間違いなし!ぜひ最後まで読んで、CHOOSE関数をマスターしましょう。
CHOOSE関数の基本!書式と引数の意味
まずは、CHOOSE関数の基本的な書式と、それぞれの引数が何を意味するのかを理解しましょう。
CHOOSE関数の書式
=CHOOSE(インデックス番号, 値1, 値2, [値3], ...)
各引数の詳細
- インデックス番号 (必須)
- 1以上の整数(1, 2, 3…)を指定します。
- この番号に対応する「値」が結果として返されます。
- セル参照(例:
A1
)や、計算結果が整数になる他の関数(例:MATCH
関数)を指定することも可能です。
- 値1, 値2, [値3], … (必須)
- インデックス番号に対応する値です。
- 数値、文字列(必ずダブルクォーテーション
""
で囲む)、セル参照、他の関数、数式など、様々な形式の値を指定できます。 - 指定できる値の数は、最大で254個です。
シンプルな使用例
例えば、以下のような数式を見てみましょう。
=CHOOSE(2, "リンゴ", "バナナ", "ミカン")

この場合、「インデックス番号」が「2」なので、2番目の値である「バナナ」が結果として返されます。
セル参照を使って、より柔軟にすることもできます。

| A列 | B列 | C列 | D列 | | :– | :– | :– | :– | | 2| 青 | 黄 | 緑 |
もしA1セルに「2」が入力されているとして、=CHOOSE(A1, B1, C1, D1)
という数式を入力すると、A1セルの値が2のため、C1セルの「黄」が返されます。
実践!CHOOSE関数の具体的な使い方例~簡単~
ここからは、CHOOSE関数が実務でどのように役立つのかを、具体的なシナリオでご紹介します。あなたの業務にもきっと役立つはずです!
例1:営業成績の評価を自動表示する
「評価点」を入力したら、それに対応する「評価ランク(A, B, C)」を自動で表示したい場合を考えます。

B列に評価ランクを表示するには、以下のようなCHOOSE関数を使います。
B2セルに入力する数式: =CHOOSE(A2, "C", "B", "A")
- A2セルが「1」の場合 → “C”
- A2セルが「2」の場合 → “B”
- A2セルが「3」の場合 → “A”
というように表示されます。

=CHOOSE(A2, "C", "B", "A")
の出力結果もしこれをIF関数で書くと、=IF(A2=1,"C",IF(A2=2,"B",IF(A2=3,"A","")))
のようにネストが深くなり、数式が複雑で見にくくなってしまいますね。CHOOSE関数を使えば、このように数式を圧倒的にシンプルに記述できます。
例2:曜日番号から曜日名を自動表示する
ExcelのWEEKDAY関数は、日付から曜日を番号で返してくれますが、それを「月」「火」のような曜日名に変換したい時にCHOOSE関数が活躍します。
B2セルに曜日を表示する数式は以下のようになります。

B2セルに入力する数式: =CHOOSE(WEEKDAY(A2,2), "月", "火", "水", "木", "金", "土", "日")
WEEKDAY(A2,2)
は、A2セルの日付が何曜日かを番号で返します。第2引数に「2」を指定すると、月曜日を「1」、火曜日を「2」…日曜日を「7」と返します。- 例えば、A2セルが「2025/7/1(火曜日)」の場合、
WEEKDAY(A2,2)
は「2」を返します。 - その結果、
CHOOSE
関数は2番目の値である「火」を返します。
実践!CHOOSE関数の具体的な使い方例~応用~
例3:ドロップダウンリストと連携して表示を切り替える
データ分析やレポート作成で、ユーザーが選択した項目に応じて表示内容を動的に変えたい場合に非常に便利です。
例えば、以下のようにドロップダウンリストで選択した番号に応じて、別のセルに「売上高」「利益」「顧客数」のどれかを表示したいとします。

| B列 | C列 | D列 | E列 | F列 | | :——— | :– | :——— | :——— | :——— | | 選択肢 | | 売上高 | 利益 | 顧客数 | | | | 1000 | 200 | 50 |
C1セルに「1:売上高」「2:利益」「3:顧客数」のドロップダウンリストを作成し、その選択結果(数字)が入力されるとします。そして、C2セルに、選択肢に応じた値(D2, E2, F2セル)を表示させたいのです。

C2セルに入力する数式: =CHOOSE(C1, D3, E3, F3)
- C1セルで「1」が選択されたら、D2セルの値(1000)を表示。
- C1セルで「2」が選択されたら、E2セルの値(200)を表示。
- C1セルで「3」が選択されたら、F2セルの値(50)を表示。
このように、ドロップダウンリストとCHOOSE関数を組み合わせることで、ユーザーが操作できる動的なレポートやダッシュボードを作成できます。
例4:リストから合計を取得する
3人でボーリングを行いその合計点を競いました。その際、合計を取得する際にCHOOSE関数を使うことで非常に便利に結果を取得することができます。

3人で合計4回ボーリングをした結果が上記の表のとおりです。ここからドロップダウンリストを使用し、選択した人の合計点を算出します。

F3セルに入力する関数:=SUM(CHOOSE(F2,B3:B6,C3:C6,D3:D6))
例5:複数の表を使って適切な価格を抜き出す~VLOOKUP関数+MATCH関数の組み合わせ~
下記のような果物類と肉類、魚類の種類に応じた価格表があるとします。
A8セルにタイプの入力をドロップダウンリストで作成し、加えて商品名にはA8セルで入力したタイプにある商品名のみをドロップダウンリストで選択できるようにしました。
※ドロップダウンリストの詳しい作成方法に関しては別記事を参照してください。

A12セルに入力する関数:=VLOOKUP(A10,CHOOSE(MATCH(A8,J2:J4,0),A2:B5,D2:E5,G2:H5),2,FALSE)
VLOOKUP関数とMATCH関数を使うことで複数表を参照に価格を確認することができました!
CHOOSE関数を使う上での注意点・エラー対策
CHOOSE関数は非常に便利ですが、いくつか注意すべき点があります。
- インデックス番号の範囲外:
CHOOSE
関数に指定した値の数よりも大きい「インデックス番号」を指定すると、#VALUE!
エラーが返されます。- 例えば、
=CHOOSE(4, "A", "B", "C")
のように、3つしか値がないのに「4番目」を要求するとエラーになります。 - インデックス番号が1未満(0や負の数)の場合も同様に
#VALUE!
エラーになります。
- 文字列はダブルクォーテーションで囲む:
"リンゴ"
のように、文字列を直接記述する場合は必ずダブルクォーテーション (""
) で囲む必要があります。囲まないとエラーになるか、参照先のセルとして認識されてしまうことがあります。
- 空白セルの扱い:
CHOOSE
関数で参照するセルが空白の場合、その空白セルに対応する値が返されます。これはエラーではありませんが、意図しない結果になる可能性があるので注意が必要です。
- INDIRECT関数との違い:
CHOOSE
関数は、あらかじめ指定した固定された「値」のリストから選択します。- 一方、
INDIRECT
関数は、文字列として与えられたセル参照を「実際のセル参照」として解釈して値を返します。似ていますが、使いどころが異なりますので、状況に応じて使い分けましょう。
CHOOSE関数と組み合わせるとさらに便利な関数
CHOOSE関数は単体でも強力ですが、他の関数と組み合わせることで、さらにその真価を発揮します。
- WEEKDAY関数:
- 前述の例でも出てきましたが、日付から曜日番号を取得するために使います。
=CHOOSE(WEEKDAY(日付セル, 2), "月", "火", ...)
のように組み合わせて使用します。
- 前述の例でも出てきましたが、日付から曜日番号を取得するために使います。
- MATCH関数:
- 特定の値がリストの何番目にあるかを検索し、その位置(インデックス番号)を返してくれます。
MATCH
関数で取得したインデックス番号をCHOOSE
関数の「インデックス番号」として使うことで、より複雑な条件分岐や、柔軟なデータ抽出が可能になります。- 例: ユーザーが入力した商品名が、あらかじめ定義された商品リストの何番目にあるかを
MATCH
で探し、その番号を使ってCHOOSE
関数で対応する価格やカテゴリを表示する、といった応用が考えられます。
- VLOOKUP関数やIF関数との使い分け:
VLOOKUP
関数は、検索値に基づいて対応するデータを取り出す際に非常に強力です。CHOOSE関数はインデックス番号と決まった値が紐づいている場合に有効で、VLOOKUP
関数はより広範なデータ検索に適しています。IF
関数はシンプルな条件分岐(真か偽か)に向いています。条件が3つ以上になる場合は、CHOOSE
関数の方が数式をシンプルに記述できることが多いです。- 状況に応じて最適な関数を選ぶことが、効率的なExcel作業への近道です。
まとめ:CHOOSE関数でExcel作業をもっとスマートに!
ここまで、ExcelのCHOOSE関数について詳しく解説してきました。
CHOOSE関数は、
- IF関数の多重ネストを避け、数式を分かりやすくする
- 数値(インデックス番号)に応じて様々なデータ(文字列、数値、セル参照など)を返す
- ドロップダウンリストなどと組み合わせることで、動的なシート作成が可能になる
といった大きなメリットがあります。
複雑な条件分岐に悩んでいた方も、これでCHOOSE関数を使いこなせるようになったのではないでしょうか。ぜひ、この記事で学んだ知識を活かして、あなたのExcel作業をもっとスマートに、もっと効率的に進めてみてください!
他にもExcelの便利な関数について知りたいことがあれば、ぜひコメントで教えてくださいね。
コメント