スプレッドシートのCHOOSE関数の使い方|インデックスで値選択

スポンサーリンク

「評価ランクの1〜5に応じてラベルを出し分けたい」。こんなとき、IF関数のネストを何段も重ねていませんか。

条件が増えるたびに数式が長くなって、修正するのも一苦労ですよね。

そんな場面で活躍するのがCHOOSE関数です。番号を指定するだけで対応する値を返してくれます。

この記事では、CHOOSE関数の基本から実務で使える応用パターンまで解説します。

スプレッドシートのCHOOSE関数とは?

CHOOSE関数(読み方: チューズ関数)は、インデックス番号に対応する値を返す関数です。

英語の「Choose(選ぶ)」が名前の由来です。

「番号札で値を引き当てる」イメージで覚えてみてください。

CHOOSE関数にできることをまとめると、次のとおりです。

  • インデックス番号(1, 2, 3…)に対応する値を返す
  • 値には文字列・数値・セル参照・数式を指定できる
  • WEEKDAY関数(曜日番号を返す関数)と組み合わせて曜日名を表示する
  • MONTH関数(月番号を返す関数)と組み合わせて四半期ラベルを判定する

NOTE

CHOOSE関数はインデックスが1から始まる連番のときに力を発揮します。条件が「〇〇以上」「〇〇を含む」のような判定の場合は、IF関数やSWITCH関数のほうが向いています。

CHOOSE関数の書き方(構文と引数)

基本構文

CHOOSE関数の構文はこちらです。

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

引数は最低3つ必要です。値は最大30個まで指定できます。

引数の説明

引数必須/省略可意味指定例
インデックス必須何番目の値を返すかを指定する番号(1〜30)2
値1必須インデックスが1のときに返す値“りんご”
値2, 値3…省略可インデックスが2, 3…のときに返す値“みかん”, “ぶどう”

インデックスに小数を指定した場合、小数部分は切り捨てられます。たとえば 2.9 なら 2 として扱われます。

CHOOSE関数の基本的な使い方

ここではシンプルな例でCHOOSE関数の動きを確認してみましょう。

セルA2に評価ランク(1〜3の数値)が入っているとします。このランクに応じてラベルを表示する数式はこちらです。

=CHOOSE(A2, "優", "良", "可")

A2が 1 なら「優」、2 なら「良」、3 なら「可」が返ります。

IF関数で同じことを書くと次のようになります。

=IF(A2=1, "優", IF(A2=2, "良", "可"))

CHOOSE関数のほうが、どの番号にどの値が対応しているか一目でわかりますよね。

もうひとつ例を見てみましょう。部署コード(1〜5)から部署名を返すケースです。

=CHOOSE(B2, "営業部", "経理部", "総務部", "人事部", "開発部")

選択肢が多いほど、CHOOSE関数の読みやすさが際立ちます。IF関数だと4段ネストが必要ですが、1行で書けますよ。

CHOOSE関数の実践的な使い方・応用例

WEEKDAY関数と組み合わせて曜日を表示する

WEEKDAY関数は日付から曜日番号(1〜7)を返す関数です。この番号をCHOOSE関数に渡せば、曜日名を表示できます。

セルA2に日付が入っているとき、次の数式で曜日を取得できます。

=CHOOSE(WEEKDAY(A2), "日", "月", "火", "水", "木", "金", "土")

WEEKDAY関数はデフォルトで日曜=1〜土曜=7を返します。値1〜値7に曜日名を並べるだけなので、直感的に書けますよ。

TIP

TEXT関数で =TEXT(A2, "ddd") と書いても曜日を取得できます。ただし「月」「火」のような1文字表記にしたい場合は、CHOOSE+WEEKDAYのほうが柔軟に対応できます。

スプレッドシートのWEEKDAY関数について詳しく知りたい方は、「スプレッドシートのWEEKDAY関数の使い方」もあわせてご覧ください。

MONTH関数と組み合わせて四半期を判定する

MONTH関数は日付から月番号(1〜12)を返す関数です。CHOOSE関数と組み合わせれば、四半期ラベルを振れます。

=CHOOSE(MONTH(A2), "Q3","Q3","Q3", "Q4","Q4","Q4", "Q1","Q1","Q1", "Q2","Q2","Q2")

日本の会計年度(4月始まり)に合わせた対応表はこちらです。

1〜3月4〜6月7〜9月10〜12月
四半期Q3Q4Q1Q2

IF関数で同じ処理を書くと条件式が複雑になります。CHOOSE関数なら月番号と値を1対1で並べるだけです。

値の順番を変えれば、1月始まりにも対応できますよ。

セル参照や数式を値に指定する

CHOOSE関数の値には、文字列や数値だけでなくセル参照や数式も指定できます。

たとえば、集計モード(1=合計、2=平均、3=最大値)に応じて計算方法を切り替えるケースです。

=CHOOSE(D2, SUM(B2:B10), AVERAGE(B2:B10), MAX(B2:B10))

D2が 1 ならSUM、2 ならAVERAGE、3 ならMAXの結果です。切り替えが簡単にできて便利ですよ。

よくあるエラーと対処法

CHOOSE関数で発生しやすいエラーをまとめました。

エラー原因対処法
#VALUE!インデックスに文字列や空白を指定したインデックスが数値になっているか確認する
#VALUE!インデックスが0以下、または値の個数を超えている値の個数(1〜30)の範囲内か確認する
#REF!値に指定したセル参照が無効になった参照先のセルが削除されていないか確認する
意図しない結果インデックスに小数が入っているINT関数で整数に変換してから渡す

インデックスが範囲外のときにエラーを回避したい場合は、IFERROR関数で囲むのがおすすめです。

=IFERROR(CHOOSE(A2, "優", "良", "可"), "対象外")

A2が1〜3以外の値でも「対象外」と表示されるので、エラー表示を防げます。

IF・SWITCH関数との違い・使い分け

CHOOSE関数と似た働きをするIF関数・SWITCH関数との違いを比較表で整理しました。

比較項目CHOOSE関数IF関数SWITCH関数
判定方法インデックス番号(1, 2, 3…)条件式(TRUE/FALSE)値の一致判定
得意な場面連番に対応する値を返す「〇〇以上」「〇〇かつ〇〇」の判定不連続な値(”A”, “B”, “C”)の振り分け
数式の読みやすさ値を並べるだけでシンプルネストが深いと読みにくい条件と結果がペアで読みやすい
最大分岐数30パターンネスト制限あり最大126ペア
条件の柔軟性低い(1始まりの連番のみ)高い(自由な条件式)中程度(値の一致のみ)

使い分けの判断基準

迷ったときは、次の基準で選んでみてください。

  • CHOOSE関数: WEEKDAY・MONTHなど「1から始まる連番」を返す関数と組み合わせるとき
  • IF関数: 「売上が10万円以上なら」のように、数値の大小や複合条件で分岐するとき
  • SWITCH関数: 「商品コードがA001なら〜、B002なら〜」のように、不連続な値で分岐するとき

IF関数やSWITCH関数の詳しい使い方は、以下の記事で解説しています。

まとめ

この記事では、スプレッドシートのCHOOSE関数の使い方を解説しました。

ポイントをおさらいしましょう。

  • CHOOSE関数は、インデックス番号に対応する値を返す関数
  • WEEKDAY関数やMONTH関数と組み合わせると、曜日名や四半期ラベルを簡単に表示できる
  • 値にはセル参照や数式も指定できるので、集計方法の切り替えにも使える
  • インデックスが範囲外のときはIFERROR関数でエラーを回避する
  • 連番以外の条件分岐にはIF関数やSWITCH関数を使い分ける

IF関数のネストが深くなってきたら、CHOOSE関数を試してみてください。数式がすっきり読みやすくなりますよ。

タイトルとURLをコピーしました