Googleスプレッドシートで複数の条件に応じて異なる値を返したい場面はよくあります。たとえば、数値の1から3に応じて「A」「B」「C」を表示したい場合、IF関数を入れ子にすると数式が複雑になりがちです。CHOOSE関数を使えば、インデックス番号でシンプルに分岐できます。この記事ではCHOOSE関数の基本的な使い方から応用例までをわかりやすく解説します。
【要点】CHOOSE関数で複数の値から1つを選ぶ
- =CHOOSE(インデックス, 値1, 値2, …): インデックス番号に応じて対応する値を返します。たとえばインデックスが2なら値2を返します。
- IF関数の代替として: 条件が少ない場合や番号で分岐する場合、CHOOSE関数のほうが数式が短くなり可読性が向上します。
- 他の関数と組み合わせ: VLOOKUPやSWITCH関数の代わりとしても使え、RANDBETWEEN関数と組み合わせてランダム抽出も可能です。
ADVERTISEMENT
目次
CHOOSE関数の概要とできること
CHOOSE関数は、指定したインデックス番号に対応する値を返す関数です。構文は「=CHOOSE(インデックス, 値1, 値2, …)」です。インデックスには1から始まる整数を指定します。値には文字列、数値、セル参照、数式などを直接記述できます。最大30個までの値を指定可能で、インデックスが範囲外の場合はエラーになります。この関数を使うと、複数の候補から1つを選ぶ処理を1行で記述できるため、IF関数の深い入れ子を避けられます。
CHOOSE関数の基本的な使い方
数値に対応する文字列を返す
- インデックスを指定するセルを準備する
セルA1に1から3までの数値を入力します。 - CHOOSE関数を入力する
セルB1に「=CHOOSE(A1, “りんご”, “みかん”, “ぶどう”)」と入力します。 - 結果を確認する
A1が1なら「りんご」、2なら「みかん」、3なら「ぶどう」と表示されます。
セル参照を値として使う
- 各値をセルに入力する
セルB1に「日曜日」、B2に「月曜日」、B3に「火曜日」と入力します。 - CHOOSE関数で参照する
セルC1に「=CHOOSE(A1, B1, B2, B3)」と入力します。 - インデックス番号で該当セルの値を取得する
A1が2なら「月曜日」が返ります。
応用例:他の関数と組み合わせた高度な使い方
IF関数の代わりに使う
複数の条件分岐をCHOOSE関数に置き換える例です。たとえば、テストの点数によって評価を「優」「良」「可」「不可」に分ける場合、通常はIF関数を入れ子にします。しかし、点数が段階的な整数で表せるならCHOOSE関数で簡潔に書けます。たとえば、点数が10点刻みで評価が決まる場合、点数を10で割って整数にしたものをインデックスにします。
- 点数からインデックスを計算する
セルA1に点数(たとえば85)が入っているとします。インデックスとして「=INT(A1/10)-5」を使います。これで85点なら8-5=3になります。 - CHOOSE関数で評価を返す
「=CHOOSE(INT(A1/10)-4, “不可”, “不可”, “可”, “良”, “優”)」と入力します。注意:インデックスが1から始まるよう調整しています。 - エラーハンドリングを追加する
点数が範囲外の場合はIFERROR関数などで対応します。
RANDBETWEEN関数と組み合わせたランダム抽出
CHOOSE関数のインデックスにRANDBETWEEN関数を使うと、複数の候補からランダムに1つを選べます。
- ランダムなインデックスを生成する
「=CHOOSE(RANDBETWEEN(1,3), “赤”, “青”, “黄”)」と入力します。 - 再計算されるたびに値が変わる
スプレッドシートを開き直すかF5キーを押すと、新しいランダム値が表示されます。
VLOOKUPの代替として使う
VLOOKUPは検索値とテーブルが必要ですが、選択肢が少なく固定の場合はCHOOSE関数で代用できます。
- インデックスに対応する値を直接並べる
「=CHOOSE(検索値, “値1”, “値2”, “値3”)」とします。検索値が1なら「値1」を返します。 - 数値以外の検索にはINDEX+MATCHを使う
CHOOSE関数はインデックスが数値に限定されるため、文字列の検索には向きません。
ADVERTISEMENT
CHOOSE関数を使用する際の注意点とよくあるエラー
インデックスが範囲外の場合
インデックスに1未満の数値や指定した値の数を超える数値を指定すると、#VALUE!エラーが発生します。たとえば、値が3つしかないのにインデックスに4を指定するとエラーになります。対策として、IFERROR関数でエラーをキャッチするか、インデックスを制限する数式を組み合わせてください。
インデックスが整数でない場合
CHOOSE関数はインデックスを自動的に整数に切り捨てます。たとえばインデックスが2.5の場合、2として扱われます。この動作を理解しておかないと、意図しない値が返ることがあります。
大量の値を指定すると数式が長くなる
CHOOSE関数には最大30個の値しか指定できません。それ以上の分岐が必要な場合は、VLOOKUP関数やSWITCH関数、IFS関数の使用を検討してください。また、値が多数になると数式が長くなり可読性が下がります。
動的な値の変更に対応しにくい
CHOOSE関数の値は数式内に直接書くため、後から値を変更するには数式を編集する必要があります。値が頻繁に変わる場合は、別のセルに値をリストアップして参照するほうが管理しやすくなります。
CHOOSE関数と他の関数の比較
| 関数 | 特徴 | 適しているケース |
|---|---|---|
| CHOOSE | インデックス番号で値を選択、最大30個 | 少ない選択肢の分岐、簡潔な数式 |
| IF | 条件式で分岐、入れ子で多分岐可能 | 複雑な条件、論理演算が必要な場合 |
| IFS | 複数の条件を順に評価、数式がシンプル | 複数の条件を並べたい場合 |
| SWITCH | 式の値に応じて結果を返す、デフォルト値あり | 一つの式を複数の値と比較する場合 |
| VLOOKUP | テーブルから検索、範囲指定で近似一致も | 大量のデータ、値の追加・変更が多い場合 |
まとめ
CHOOSE関数を使うと、インデックス番号に対応する値を1つの数式で簡単に返せます。IF関数の入れ子を減らして数式を短くしたいときや、選択肢が固定で少ない場合に便利です。ランダム抽出やシンプルな評価の分類など、応用の幅も広い関数です。ぜひ実際のスプレッドシートで試してみてください。次はSWITCH関数やIFS関数との使い分けにも挑戦すると、より効率的な数式が作れるようになります。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
