• 作成日 : 2025年8月12日

ExcelのCHOOSE関数とは?使い方や複数条件指定、応用例を解説

ExcelのCHOOSE関数(読み方:チューズ関数)は、指定したインデックス番号に応じて複数の値から1つを選べる便利な関数です。シンプルな条件分岐やデータ変換などにも活用でき、応用範囲も広いです。

この記事では、CHOOSE関数の基本から応用例、よくあるエラーの対処法までを、初心者にもわかりやすく解説します。

CHOOSE関数とは?~基本的な使い方を理解しよう

CHOOSE関数は、指定したインデックス番号に基づいて、引数として渡された複数の値の中から1つを選択して返す関数です。非常にシンプルですが、その汎用性の高さからさまざまな場面で利用できます。

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

=CHOOSE(インデックス番号, 値1, [値2], [値3], …)
  • インデックス番号:必須引数です。選択したい値の位置を示す番号を指定します。1から254の整数(数値)、あるいは1から254を導く数式やセル参照である必要があります。たとえば、値1を選択したい場合は1、値2を選択したい場合は2を指定しましょう。
  • 値1, [値2], [値3], …:必須引数です。CHOOSE関数によって選択できる値のリストであり、インデックス番号の順に指定します。最大で254個の分岐が可能です。
    これらの値は、数値、文字列、セル参照、数式、定義名、または他の関数など、どのようなデータ型でも指定できます。

CHOOSE関数の利用シーン~どんな場面で役立つ?

CHOOSE関数は、そのシンプルな構造にもかかわらず、さまざまなデータ処理の場面で活躍します。連番に応じて、条件分岐を行う際に有効です。ここでは、CHOOSE関数が特に役立つ具体的な利用シーンをいくつかご紹介します。

1. 数値と文字列の変換

インデックス番号に応じて曜日を選択するケースのように、数値を対応する文字列に変換するケースは多々あります。データベースからエクスポートされた数値コードを、より人間が理解しやすい文字列に変換する場合などに便利です。

例:顧客ステータスコードの変換

顧客管理データで、顧客ステータスが「1:新規」「2:既存」「3:休眠」といった数値コードで管理されているとします。これを、レポート作成時にわかりやすい文字列に変換したい場合、CHOOSE関数を活用できます。

A列B列
ステータスコード変換後のステータス
1=CHOOSE(A2,”新規”,”既存”,”休眠”)
2=CHOOSE(A3,”新規”,”既存”,”休眠”)
3=CHOOSE(A4,”新規”,”既存”,”休眠”)

CHOOSE関数を活用することで、コードから自動的にステータス名を表示できます。

2. 条件に応じた処理の分岐(IF関数の代替)

CHOOSE関数は、特定の条件に基づいて異なる結果を返す必要がある場合にも使用できます。特に、条件が比較的少ない場合に、複数のIF関数をネストするよりも簡潔に記述できることがあります。

例:交通手段の選択

出張申請書で、出張距離に応じて推奨される交通手段(1:電車、2:バス、3:飛行機)を表示させたいとします。

A列B列
出張距離の区分推奨交通手段
1=CHOOSE(A2,”電車”,”バス”,”飛行機”)
2=CHOOSE(A3,”電車”,”バス”,”飛行機”)
3=CHOOSE(A4,”電車”,”バス”,”飛行機”)

この場合、A列の数値に応じて、B列に適切な交通手段が表示されます。IF関数で「もしもセルA2の数値が「1」であれば「電車」、「2」であれば「バス」、「3」であれば「飛行機」、そうではない場合には「空白」を表示する場合の記述は、=IF(A2=1,”電車”,IF(A2=2,”バス”,IF(A2=3,”飛行機”,””)))となります。

条件が少ない場合はCHOOSE関数のほうが簡潔ですが、条件が複雑になるとIF関数のほうが可読性に優れることもあります。

3. プルダウンリストの連動

データ入力の際に、1つのプルダウンリストの選択に応じて、別のセルに表示される内容を動的に変更したい場合にCHOOSE関数が役立ちます。これは、データ検証機能と組み合わせることで実現できます。

例:都道府県と市町村の連動

たとえば、セルA1で都道府県を選択すると、セルB1でその都道府県に属する市町村のリストが表示されるようにしたい場合です。ただし、2段階でプルダウンリストを連動させる方法はCHOOSE関数単独では複雑になるため、通常はINDIRECT関数と組み合わせることが多いです。しかし、CHOOSE関数は、その選択肢の基準となるインデックスを提供するために利用できます。

たとえば、A1に都道府県コード(1:北海道、2:東京、3:大阪)を入力し、それに応じてB1にその都道府県の代表的な市町村を表示させたい場合です。

=CHOOSE (A1, “札幌市”, “新宿区”, “大阪市”)

上記では、A1のプルダウンリストの選択によってB1のプルダウンリスト表示が切り替わります。もちろん、実際にはINDIRECT関数などを組み合わせることで、プルダウンリストの連動が可能になりますが、CHOOSE関数はその選択の基盤となるインデックスを提供します。

4. 計算式や関数の動的な選択

CHOOSE関数の「値」には、計算式や他の関数を指定することも可能です。これにより、インデックス番号に応じて実行する計算や関数を切り替えるという、より高度な使い方もできます。

例:選択された計算の実行

たとえば、セルA1に計算の種類(1:合計、2:平均、3:最大値)を示す数値があり、セルB1からB5に数値データが入っているとします。A1の選択に応じて、B1からB5の範囲で合計、平均、最大値のいずれかを計算したい場合です。

=CHOOSE (A1, SUM(B1:B5), AVERAGE(B1:B5), MAX(B1:B5))

A1が1であればSUM関数が実行され合計が、2であればAVERAGE関数が実行され平均が、3であればMAX関数が実行され最大値が計算されます。これは非常に強力な機能であり、柔軟なレポートや分析ツールの作成に役立ちます。

このように、CHOOSE関数は、シンプルながらも多様な場面で活用できる非常に便利な関数です。IF関数のネストを減らしたり、データ変換を効率化したり、さらには動的な計算の切り替えを行ったりと、Excel作業をより効率的でスマートなものに変えてくれるでしょう。

CHOOSE関数の応用~さらに使いこなすためのヒント

CHOOSE関数は単独でも強力ですが、他の関数と組み合わせることで、その可能性はさらに広がります。ここでは、CHOOSE関数をより効果的に活用するための応用テクニックをご紹介します。

1. MATCH関数との組み合わせ

CHOOSE関数はインデックス番号を必要としますが、このインデックス番号を動的に生成したい場合があります。そのようなときに非常に役立つのがMATCH関数です。MATCH関数は、指定した値が範囲内のどこに位置するかを返し、その位置を数値(インデックス番号)で提供します。

MATCH関数の構文:=MATCH (検索値, 検索範囲, [照合の種類])

例:商品コードから商品名を検索

たとえば、セルA1に商品コード(”A001″, “B002”, “C003″など)が入力されており、それに対応する商品名をCHOOSE関数で表示したいとします。しかし、商品コードは数値ではないため、そのままではインデックス番号として使えません。そこでMATCH関数を使います。

商品コード商品名
A001りんご
B002みかん
C003バナナ

上記のテーブルがあったとして、セルA5に商品コードを入力し、セルB5に商品名を表示させたい場合。

=CHOOSE (MATCH(A5, {“A001”, “B002”, “C003”}, 0), “りんご”, “みかん”, “バナナ”)

この数式では、まずMATCH(A5, {“A001”, “B002”, “C003”}, 0)が実行されます。A5セルに「A001」が入力されていれば1が、A5セルに「B002」が入力されていれば2が返されます。このMATCH関数の結果がCHOOSE関数のインデックス番号として機能し、対応する商品名が表示されます。

この組み合わせは、VLOOKUP関数やINDEX+MATCH関数を使う代わりに、表形式データによらず、複雑な条件分岐を柔軟かつ簡潔に処理したい際に特に有効です。

2. WEEKDAY関数との組み合わせ

日付データから曜日を取得し、その曜日に応じた処理を行いたい場合に、WEEKDAY関数とCHOOSE関数を組み合わせると便利です。WEEKDAY関数は、日付に対応する曜日を数値(1~7)で返します。

WEEKDAY関数の構文:=WEEKDAY (シリアル値, [週の基準])

例:営業日の表示

セルA1に日付が入力されているとして、その日付が「土日」であれば「休日」と表示し、それ以外であれば「営業日」と表示したいとします。

=CHOOSE(WEEKDAY(A1,2), “営業日”, “営業日”, “営業日”, “営業日”, “営業日”, “休日”, “休日”)

WEEKDAY関数の第2引数を2にすることで、月曜日を1、日曜日を7として返します。

これにより、月曜日から金曜日(1~5)は「営業日」、土曜日と日曜日(6と7)は「休日」と表示されます。

3. その他の関数との組み合わせ

CHOOSE関数は、その柔軟性からさまざまな関数と組み合わせることが可能です。たとえば、SUM関数と組み合わせることで、特定の範囲のデータに基づいた集計もできます。

例:特定の範囲のデータを参照

たとえば、セルH1に入力した数字に応じて、B列、C列、D列に入力された営業担当者ごとの売上集計を切り替えて表示したい場合の数式は下記のとおりです(B2セル、C2セル、D2セルにそれぞれ入力した「1」「2」「3」で営業担当者を識別します)。

=SUM(CHOOSE (H1, B3:B10, C3:C10, D3:D10))

この数式は、H1が1であればB3:B10の合計値を、2であればC3:C10の合計値を、3であればD3:D10の合計値を返します。これは、データの参照先を動的に切り替えたい場合に有効です。

このように、CHOOSE関数は他の関数と組み合わせることで、より高度で動的なデータ処理を実現できます。特に、固定された選択肢の中からインデックスに基づいて値を取り出したい場合に、他の複雑な関数を使うよりも直感的で効率的な解決策を提供してくれます。

CHOOSE関数のよくあるエラーと対策

CHOOSE関数は非常に便利な関数ですが、使い方を誤るとエラーが発生することがあります。ここでは、CHOOSE関数でよく発生するエラーとその対策について解説します。これらのエラーを理解し、適切に対処することで、スムーズにCHOOSE関数を使いこなせるようになります。

1. #VALUE! エラー

このエラーは、CHOOSE関数の引数に無効な値が指定された場合に発生します。特に、以下のケースで発生しやすいです。

  • インデックス番号が整数ではない場合:CHOOSE関数のインデックス番号は、1以上の整数である必要があります。小数点以下の数値や、日付など、整数以外の値が指定されると#VALUE!エラーが発生します。
    • 対策:インデックス番号として指定するセルや数式の結果が、必ず整数になるように確認してください。
  • インデックス番号が文字列の場合:インデックス番号として、数値ではなく文字列が指定された場合も#VALUE!エラーとなります。
    • 対策:インデックス番号は数値型である必要があります。セル参照の場合は、そのセルに数値が入力されているか確認してください。

2. #NULL!  エラー

#NULL!エラーは、CHOOSE関数のインデックス番号が、引数として指定された値の範囲を超えている場合に発生します。

  • インデックス番号が1未満の場合:インデックス番号は1以上でなければなりません。0や負の数が指定されると#NULL!エラーが発生します。
    • 対策:インデックス番号が1以上であることを確認してください。数式の結果が0や負の値になる場合は、エラーハンドリング(後述のIFERROR関数など)や、論理式の調整が必要です。
  • インデックス番号が指定された値の数より大きい場合:たとえば、=CHOOSE(4, “A”, “B”, “C”)のように、3つの値しか指定されていないのにインデックス番号に4が指定されると、対応する値が存在しないため#NULL!エラーが発生します。
    • 対策:インデックス番号が、CHOOSE関数で指定している値の総数を超えないように注意してください。特に、インデックス番号が他のセルの値や数式の結果である場合は、その結果が常に有効な範囲内にあるかを確認する必要があります。

3. #NUM! エラー

CHOOSE関数で#NUM!エラーは比較的稀ですが、特定の状況下で発生する可能性があります。たとえば、インデックス番号が有効な範囲外となるような極端な数値が指定された場合などですが、通常は#NULL!エラーが発生するため、#NUM!エラーは一般的ではありません。

  • 対策:通常の利用ではあまり遭遇しませんが、もし発生した場合は、インデックス番号の値がExcelのCHOOSE関数の仕様範囲内にあるかを確認してください。

4. IFERROR関数によるエラーハンドリング

上記のようなエラーが発生した場合に、ユーザーにわかりやすいメッセージを表示したり、代替の値を返したりするために、IFERROR関数とCHOOSE関数を組み合わせるのが非常に有効です。

IFERROR関数の構文:=IFERROR(値, エラーの場合の値)

CHOOSE関数を活用して効率的なExcel作業を実現

CHOOSE関数は、数値に応じて柔軟に値を選べる関数であり、条件分岐やデータ変換の効率化に大きく貢献します。MATCHやWEEKDAY関数と組み合わせれば、より動的で実用的な処理が可能になり、IF関数の代替として使える場面もあります。

ただし、引数の指定やインデックス番号の取り扱いには注意が必要です。仕様を理解し、適切に使いこなすことで、作業の自動化と精度向上につながります。


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。

関連記事