KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel CHOOSE 関数

著者変更日
doc choose function 1

説明

構文と引数

使用方法と例


説明

CHOOSE 関数は、指定されたインデックス番号に基づいて値リストの引数から値を返します。たとえば、CHOOSE(3,”Apple”,”Peach”,”Orange”)は「オレンジ」を返します。インデックス番号は 3 で、「オレンジ」は関数内のインデックス番号に対応する3 番目の値です。

構文と引数

数式の構文

CHOOSE()index_num, value1, [value2], …)

引数

  • Index_num: 必須。どの引数値を選択するかを間接的に指定する数値(範囲:1~254)。index_num がこの範囲外の場合、CHOOSE 関数は#VALUE! エラーを返します。また、index_num が小数の場合、数式の実行前に整数に切り捨てられます。
  • Value1: 必須。数式内で選択可能な最初の値。
  • Value2: 任意。2 番目から254 番目までの選択可能な値。

Value1, value2… には数値、テキスト、数式、セル参照、または定義名を指定できます。

返す値

CHOOSEこの関数は、指定された位置に基づいてリストから値を返します。

使用方法と例

ここでは、CHOOSE 関数の使い方をわかりやすく解説するため、シンプルで代表的な例をいくつかご紹介します。

Ex1 - 基本的な使用法:CHOOSE 関数を単独で使用してリスト引数から値を選択

数式1:

=CHOOSE(3,「a」,「b」,「c」,「d」)

戻り値: c。これは、CHOOSE 関数の index_num 引数に続く3 番目の引数です。

注: 値がテキストの場合は、二重引用符で囲ってください。

数式2:

=CHOOSE(2,A1,A2,A3,A4)

戻り値: Kate(A2 セルの値)。index_num が2 なので、CHOOSE 関数内で2 番目の値である A2 が返されます。

数式3:

=CHOOSE(4,8,9,7,6)

戻り値: 6(関数内の4 番目のリスト引数)
doc choose function 2


Ex2 – 複数の条件に基づいて異なる結果を返す

以下のスクリーンショットに示すように、各製品には偏差リストがあり、これを条件に基づいてラベル付けする必要があります。
doc choose function 3

通常は IF 関数を使えますが、ここではCHOOSE 関数でこの問題を簡単に解決する方法をご紹介します。

数式:

=CHOOSE((B7>0)+(B7>1)+(B7>5),「Top」,「Middle」,「Bottom」)

説明:

(B7>0)+(B7>1)+(B7>5):index_num。B7 は 2 であり、0 および 1 より大きく 5 より小さいため、中間結果は次のとおりです。

=CHOOSE(True+Ture+False,「Top」,「Middle」,「Bottom」)

True は 1、False は 0 であるため、この数式は次のように見なせます。

=CHOOSE(1+1+0,「Top」,「Middle」,「Bottom」)

次に

=CHOOSE(2,「Top」,「Middle」,「Bottom」)

結果: Middle
doc choose function 4


Ex3 – 条件に基づいて異なる計算結果を返す

以下のスクリーンショットのように、数量と価格に基づいて各製品のリベートを計算する必要があると仮定しましょう。
doc choose function 5数式:=CHOOSE((B8>0)+(B8>100)+(B8>200)+(B8>300),B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5) 説明:(B8>0)+(B8>100)+(B8>200)+(B8>300):index_number。B8 は 102 で、100 より大きく 201 より小さいため、この部分の結果は次のとおりです。=CHOOSE(true+true+false+false,B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5)=CHOOSE(1+1+0+0,B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5) 次に=CHOOSE(2,B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5)B8*C8*0.1,B8*C8*0.2,B8*C8*0.3,B8*C8*0.5: 選択される値は、「価格 × 数量 × リベート率」で計算されるリベートです。ここでは index_num が 2 であるため、B8*C8*0.2 が選ばれ、102×2×0.2=40.8 が返されます。


Ex4 – リストからランダムに選択Excel では、指定されたリストからランダムに値を選びたい場面がよくあります。そんなときには、CHOOSE 関数が大活躍します!リストからランダムに1 つの値を選択:数式:=CHOOSE(RANDBETWEEN(1,5),$D$2,$D$3,$D$4,$D$5,$D$6) 説明:RANDBETWEEN(1,5):index_num。1~5 の範囲からランダムに数値を取得 $D$2,$D$3,$D$4,$D$5,$D$6: 選択対象となる値のリスト

Ex5 – CHOOSE 関数と VLOOKUP 関数を組み合わせて返す値を最も左の列で実行 通常、VLOOKUP 関数 =VLOOKUP (value, table, col_index, [range_lookup]) を使って、テーブル範囲内から指定された値に基づくデータを取得します。しかし、VLOOKUP 関数では、以下のスクリーンショットのように、返したい列が検索列の左側にある場合、エラー値が返されてしまいます。
このようなケースでは、CHOOSE 関数を VLOOKUP と組み合わせることで、スマートに問題を解決できます。数式:=VLOOKUP(E1,CHOOSE({1,2},B1:B7,A1:A7),2,FALSE) 説明:CHOOSE({1,2},B1:B7,A1:A7):VLOOKUP 関数の table_range 引数として使用します。{1,2} は、VLOOKUP の col_num 引数に応じて、index_num として 1 または 2 を指定することを意味します。ここでは col_num が 2 なので、CHOOSE 関数はCHOOSE(2, B1:B7,A1:A7) となり、A1:A7 から値を取得します。

Ex6 – 指定された日付から曜日や月を返すCHOOSE 関数を使えば、指定された日付に対応する曜日や月を簡単に取得できます。数式 1: 日付から曜日を返す=CHOOSE(WEEKDAY(),「Sunday」,「Monday」,「Tuesday」,「Wednesday」,「Thursday」,「Friday」,「Saturday」)説明:WEEKDAY():index_num 引数。指定された日付の曜日番号を取得します。たとえば、WEEKDAY(A5) が 6 を返せば、index_num は 6 になります。「Sunday」,「Monday」,「Tuesday」,「Wednesday」,「Thursday」,「Friday」,「Saturday」:値リストの引数。「日曜日」から始まります。これは、曜日番号「1」が「日曜日」に対応するためです。数式 2: 日付から月を返す=CHOOSE(MONTH(),「Jan」,「Feb」,「Mar」,「Apr」,「May」,「Jun」,「Jul」,「Aug」,「Sep」,「Oct」,「Nov」,「Dec」)説明:MONTH():index_num 引数。指定された日付から月番号を取得します。たとえば、MONTH(A5) が 3 を返します。

Ex7 – 本日を基準に次の営業日/週末の日付を返す 日常業務では、本日を基準に次の営業日や週末を計算したい場面がよくあります。そんなときにも、CHOOSE 関数が大活躍します!たとえば、本日が2018 年12 月20 日(木曜日)で、次の営業日と週末を取得したい場合です。数式 1: 本日の日付を取得 =TODAY()結果: 12/20/2018 数式 2: 本日の曜日番号を取得 =WEEKDAY(TODAY())結果: 5(本日が2018 年12 月20 日の場合)。以下のスクリーンショットに示すとおり、曜日番号の一覧は次のとおりです。
数式 3: 次の営業日を取得 =TODAY()+CHOOSE(WEEKDAY(TODAY()),1,1,1,1,1,3,2) 説明:Today():現在の日付を返します。WEEKDAY(TODAY()):CHOOSE 関数の index_num 引数。今日の曜日番号を取得します(例:日曜日は 1、月曜日は 2…)。1,1,1,1,1,3,2:CHOOSE 関数の value list 引数。たとえば、WEEKDAY(TODAY()) が 1(日曜日)を返す場合、値リストから 1 を選択し、数式全体は =TODAY()+1 となります。これは1 日加算して次の月曜日を返すことを意味します。WEEKDAY(TODAY()) が 6(金曜日)を返す場合、金曜日から次の月曜日までは3 日あるため、値リストから 3 を選択します。結果(本日が 12/20/2018 の場合):=12/20/2018+CHOOSE(5,1,1,1,1,1,3,2)=12/20/2018+1=12/21/2018 数式 4: 次の週末を取得 =TODAY()+CHOOSE(WEEKDAY(TODAY()),6,5,4,3,2,1,1) 説明:6,5,4,3,2,1,1:CHOOSE 関数の value list 引数。たとえば、WEEKDAY(TODAY()) が 1(日曜日)を返す場合、値リストから 6 を選択すると、数式全体は =TODAY()+6 となり、6 日加算して次の土曜日を返します。結果:=12/20/2018+CHOOSE(5,6,5,4,3,2,1,1)=12/20/2018+2=12/22/2018

サンプルファイル
doc サンプルファイル

最高の Office 生産性ツール

Kutools for Excel - あなたを群衆の中から際立たせます

🤖KUTOOLS AI アシスト:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気機能検索・ハイライト・重複をマーキング    空白行を削除する    データを失うことなく列の結合またはセルを    数式を使用しない四捨五入...
スーパー VLookup複数条件    複数値    複数シート間    ファジーマッチ...
高度なドロップダウンリスト簡単なドロップダウンリスト    連動型ドロップダウンリスト    複数選択可能なドロップダウンリスト...
列マネージャー指定した数の列を追加    列の移動   非表示列の表示状態を切り替え  列を比較して同じ/異なるセルを選択...
注目の機能グリッドフォーカス    デザインビュー    強化された数式バー    ワークブックとシートマネージャーリソースライブラリ(オートテキスト)  日付ピッカー    ワークシートの統合    暗号化/セルの復号化   リストからメール送信    スーパーフィルター    特殊フィルタ(太字のフォントを持つセルをフィルタリング/イタリック/取り消し線。。。) 。。。
トップ15 ツールセット12 テキストツールテキストの追加特定の文字を削除...)  50+チャートタイプガントチャート...)  40+実用的な数式誕生日に基づいて年齢を計算します...)  19 挿入ツールQR コードを挿入パスから画像を挿入...)  12 変換ツール単語に変換する為替レートの変換...)  7 結合と分割ツール高度な行のマージExcel セルを分割...)。。。他にも多数
Kutools を好みの言語でお使いいただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+言語以上をサポートしています!

Kutools for Excel は300 以上の機能を備えており、必要な機能が常にワンクリックで利用できます…


Office Tab - Microsoft Office(Excel を含む)でタブを使った閲覧・編集を可能にします

  • 数十もの開いているドキュメントを1 秒で切り替えられます!
  • 毎日何百回ものマウスクリックを削減して、マウス手の悩みともさよならしましょう。
  • 複数のドキュメントを閲覧・編集する際の生産性が50%も向上します。
  • Office(Excel を含む)に、Chrome、Edge、Firefox のような効率的なタブ機能をもたらします。