CHOOSE関数は、番号に応じて、並べた値の中から1つを選ぶ関数です。1 なら1つ目、2 なら2つ目を返します。曜日や四半期の表示、番号で集計する範囲を切り替えるときなどに使います。
この記事では、CHOOSE 関数の使い方を、WEEKDAY と組み合わせた曜日、4月始まりの四半期、範囲を選んで合計する使い方、#VALUE! になる原因まで、実際の Excel の画面で説明します。練習用のファイルも無料でダウンロードできます。
CHOOSE関数の書き方(構文)
=CHOOSE(インデックス, 値1, 値2, …)
| 引数 | 意味 |
|---|---|
| インデックス | 何番目の値を選ぶかの番号(1〜254)。セルや式でも指定できる |
| 値1, 値2, … | 選ぶ候補。文字・数値・セル範囲・式を254個まで並べられる |
CHOOSE はすべてのバージョンの Excel で使えます。
基本の使い方:番号で値を選ぶ
手順:B3 に CHOOSE の式を入れて Enter
A 列の番号に応じて「松・竹・梅」から 1 つを選びます。 B3 に次の式を入力して、Enter キーを押します❶。
=CHOOSE(A3,"松","竹","梅") "松" 値1"竹" 値2"梅" 値3A3"松""竹""梅"オレンジに「番号のセル」、そのあとに「1 のとき・2 のとき…」の値を順に並べます。値は 254 個まで書けます。例:区分の番号(B2)から「会社員・自営業・その他」を表示
=CHOOSE(B2,"会社員","自営業","その他") - 番号が 0 や値の数より大きいと #VALUE! になります。

確認:竹は「2 つ目の値」

答えは 竹 になりました❷。式は、次の順に計算しています。
- A3 の番号を見る
⇒ 2 - 値の並び(松・竹・梅)から 2 つ目を選ぶ
⇒ 竹
WEEKDAY と組み合わせて曜日を表示する
WEEKDAY 関数は、日曜を 1、月曜を 2…土曜を 7 で返します。その番号を CHOOSE に渡すと、曜日の文字になります。試したところ、2026/10/1 は「木」、2026/11/1 は「日」になりました(WEEKDAY関数の使い方)。
=CHOOSE(WEEKDAY(A2),"日","月","火","水","木","金","土")
月から4月始まりの四半期を出す
MONTH 関数で月(1〜12)を取り出し、1〜3月は 4、4〜6月は 1…のように12個並べると、4月始まりの四半期になります。試したところ、10月〜12月は「3Q」、1月・2月は「4Q」になりました。
=CHOOSE(MONTH(A2),4,4,4,1,1,1,2,2,2,3,3,3)&"Q"

番号で集計する範囲を切り替える
CHOOSE の候補には、セル範囲も並べられます。E2 に 1 を入れると4月の列、2 を入れると5月の列を SUM します。試したところ、2 のときは 5月の合計 640 になりました。
=SUM(CHOOSE(E2,B2:B4,C2:C4))

よくある間違い

選択肢が3つの式で、番号を変えて試しました。0・-1、選択肢の数より大きい 4 は #VALUE! になりました。2.7 のような小数は切り捨てて2番目の「竹」になり、文字の「2」も 2 として扱われました。
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| #VALUE! になる | 番号が 0 以下、または選択肢の数より大きい | 番号が 1〜選択肢の数に入っているか確かめる。IFERROR で表示を決める。 |
| 思った値と1つずれる | 番号の数え方が 0 からになっている | CHOOSE は 1 から数える。0 始まりの番号なら +1 する。 |
| 小数の番号で前の値が出る | 小数は切り捨てて扱われる | 四捨五入したいなら ROUND で番号を整える。 |
| 選択肢が多すぎて式が長い | 候補を式に全部書いている | 表にして INDEX や XLOOKUP で取り出す。 |
よくある質問
CHOOSE と SWITCH・IF の違いは?
CHOOSE は「1・2・3…の番号」で選ぶ専用の関数です。番号ではなく「A なら…、B なら…」のように値で分けたいときは SWITCH、「以上・以下」の条件なら IF や IFS を使います。試したところ、=SWITCH(2,1,"赤",2,"青",3,"黄") は「青」でした(IF関数の練習問題(SWITCH も))。
曜日を出すだけなら、もっと簡単な方法は?
TEXT 関数で =TEXT(A2,"aaa") とすると、「土」のように曜日が出ます。CHOOSE は「平日・休日」のように自分で決めた文字にしたいときに便利です(平日か休日かを判定する方法)。
VLOOKUP で左の列を返すのに CHOOSE を使う方法は?
CHOOSE({1,2},B2:B4,A2:A4) で列の順番を入れ替えた表を作り、VLOOKUP で探す方法があります。試したところ、=VLOOKUP(80,CHOOSE({1,2},B2:B4,A2:A4),2,FALSE) で「みかん」が返りました。今は XLOOKUP や INDEX+MATCH のほうが分かりやすく書けます(MATCH関数の使い方)。

コメント