-
Home »
-
エクセル関数一覧表 »
-
CHOOSE関数の使い方
2021/10/21
リストから指定した値を返す
チューズ
=CHOOSE(インデックス,値1,値2,値3・・・)
- 値のリストから指定したインデックスの値を取出します。
- インデックスに指定した番号に基づいて、最大 254 個の値の中から 1 つの値だけを選択できます。 なお、Excel2003までは29個です。
- インデックスが 1 の場合は値1 が返され、2 の場合は値2 が返されます。
- インデックスが 1 より小さいか、引数リストの値の個数よりも多い場合、エラー値 #VALUE! が返されます。
- インデックスに小数点以下の値が含まれていても、整数部分だけが計算に使われます。
- 値1,値2,... の引数には、数値、セル参照、名前、数式、関数、または文字列を指定できます。
- リストを作成する場合はLOOKUP関数やVLOOKUP関数が使えます。
わざわざリストを作成するまでもないようなときに利用できます。
- 【使用例1】
B2の値によって、「1です」「2です」・・・「4です」と表示します。
C2セル =CHOOSE(B2,1,2,3,4)&"です" としてC5までコピーします。
(2021/10/21 数式を書き換えました。=CHOOSE(B2,"1です","2です","3です","4です")はちょっと冗長でしたね(;^_^A )
- C5は「インデックスに小数点以下の値が含まれていても、整数部分だけが計算に使われます。」よって、3となります。
C7は「インデックス(5)が 引数リストの値の個数よりも多いため」エラーとなります。
C8は「インデックス(0)が 1 より小さいため」エラーとなります。
- 上記のエラーを表示しないようにするには
- =IF(OR(B2<1,B2>4),"",CHOOSE(B2,1,2,3,4)&"です")
- =IF(ISERROR(CHOOSE(B2,1,2,3,4)),"",CHOOSE(B2,1,2,3,4)&"です")
- =IFERROR(CHOOSE(B2,1,2,3,4)&"です","")
といった式が考えられます。
これらの関数の使い方は ISERROR関数 IF関数 IFERROR関数 をご覧ください。
エラーのセルが空欄「””」になりました。
問題1
- 消費税が課税されるものと非課税のものが混在しているケースがあるとします。
課税されるものには8%の課税をします。下表の税額の列を埋めなさい。
|
B |
C |
D |
E |
2 |
商品番号 |
金額 |
税区分 |
税額 |
3 |
E151 |
15,000 |
課税 |
1,200 |
4 |
G504 |
25,000 |
非課税 |
0 |
5 |
E153 |
18,000 |
課税 |
1,440 |
6 |
G507 |
35,400 |
非課税 |
0 |
7 |
G509 |
31,800 |
非課税 |
0 |
問題1の解答例
- 課税と非課税の選択をMATCH関数で行ってみました。
MATCH(D3,{"課税","非課税"},0) として、D列が課税の時は「1」、非課税の時は「2」が返されます。
- CHOOSE関数で「1」の時は0.08、「2」の時は0 を返すようにしています。(ここでは消費税率を8%としています。)
CHOOSE(MATCH(D3,{"課税","非課税"},0),0.08,0)
- 金額に0.08または0を掛けることで税額を求めました。
- なお、この例ではIF関数で数式を書くこともできます。
=C3*IF(D3="課税",0.08,IF(D3="非課税",0,"")) といった感じです。
問題2
- 下表のような3パターン(1:上昇パターン、2:平坦パターン、3:下降パターン)を計算したいと考えました。
B9セルにパターンのNo1〜3を入力すると、D8セルの売上金額がどのように変化するのかをC9:F9セルに計算しなさい。
|
B |
C |
D |
E |
F |
2 |
No |
パターン |
今月 |
来月 |
再来月 |
3 |
1 |
上昇パターン |
100% |
120% |
130% |
4 |
2 |
平坦パターン |
100% |
100% |
100% |
5 |
3 |
下降パターン |
100% |
90% |
80% |
6 |
|
|
|
|
|
7 |
|
売上金額 |
1,500,000 |
|
|
8 |
No |
|
今月 |
来月 |
再来月 |
9 |
1 |
上昇パターン |
1,500,000 |
1,800,000 |
1,950,000 |
問題2の解答例
- C9セルに =CHOOSE(B9,C3,C4,C5) と入力します。
- D9セルには =$D$7*CHOOSE($B$9,D3,D4,D5) と入力して、右方向へ数式をコピーします。
- パターンが2,3の場合は下図のような結果が得られます。
問題3
- 適切な例ではありませんが、使い方の例として書いています。
実際に曜日を求めたいときには=TEXT(B2,"aaa") とすればよいです。
ここではあくまでもCHOOSE関数の使い方の例として書いています。
- C列に曜日を求めなさい。
-
|
B |
C |
2 |
2009/7/1 |
水 |
3 |
2009/7/2 |
木 |
4 |
2009/7/3 |
金 |
5 |
2009/7/4 |
土 |
6 |
2009/7/5 |
日 |
7 |
2009/7/6 |
月 |
8 |
2009/7/7 |
火 |
9 |
2009/7/8 |
水 |
問題3の解答例
- C2セルに =CHOOSE(WEEKDAY(B2),"日","月","火","水","木","金","土") として、下方向へコピーしています。
曜日を求めるのにWEEKDAY関数を利用し、その返り値から文字列の曜日を取り出しています。
問題4
- セル範囲を指定することもできます。
商品A〜Cの合計を求めなさい。
|
B |
C |
D |
E |
F |
G |
2 |
商品A |
商品B |
商品C |
|
商品A |
50,000 |
3 |
10,000 |
5,000 |
1,000 |
|
商品B |
25,000 |
4 |
10,000 |
5,000 |
1,000 |
|
商品C |
5,000 |
5 |
10,000 |
5,000 |
1,000 |
|
|
|
6 |
10,000 |
5,000 |
1,000 |
|
|
|
7 |
10,000 |
5,000 |
1,000 |
|
|
|
問題4の解答例
- 商品のデータ範囲をCHOOSE関数で取り出します。
- G2セルに=SUM(CHOOSE(MATCH(F2,$B$2:$D$2,0),$B$3:$B$7,$C$3:$C$7,$D$3:$D$7))と入力して下方向へコピーします。
- この数式の MATCH(F2,$B$2:$D$2,0) 部分を計算すると、↓のようになり、各セル範囲を指定することができます。
G2セル=SUM(CHOOSE(1,$B$3:$B$7,$C$3:$C$7,$D$3:$D$7))
G3セル=SUM(CHOOSE(2,$B$3:$B$7,$C$3:$C$7,$D$3:$D$7))
G4セル=SUM(CHOOSE(3,$B$3:$B$7,$C$3:$C$7,$D$3:$D$7))
スポンサードリンク
よねさんのWordとExcelの小部屋 »
エクセル関数一覧表 »
CHOOSE関数の使い方
PageViewCounter

Since2006/2/27