-
Home »
-
エクセル関数一覧表 »
-
SWITCH関数の使い方
2023/1/28
式を評価して、最初に一致する値に対応する結果を返します
スウィッチ
=SWITCH(式,値1,結果1,[値2,結果2,・・・],規定値)
- 式(条件)の返す値と一致した値に対応した結果を返します。CHOOSE関数に似ています。またIF関数でも似たような感じ処理をすることがあると思います。
SWITCH関数は式で返される値の一部を指定し、指定していない値に対しては「規定値」を返すことができるのが特徴と思われます。
- SWITCH関数はExcel2019,Excel2021,Excel for Microsoft 365 で使用することができます。
- 【問題1】 H列の合計が最も高い人から、I列に「優勝」「準優勝」「3位」と表示しなさい。
|
B |
C |
D |
E |
F |
G |
H |
I |
2 |
名前 |
国語 |
数学 |
英語 |
理科 |
社会 |
合計 |
判定 |
3 |
宮下 涼 |
83 |
57 |
72 |
47 |
44 |
303 |
3位 |
4 |
浜田 希 |
60 |
47 |
40 |
25 |
41 |
213 |
|
5 |
川井 美里 |
52 |
90 |
35 |
63 |
68 |
308 |
準優勝 |
6 |
石坂 雅和 |
30 |
82 |
65 |
51 |
74 |
302 |
|
7 |
笹川 満 |
23 |
32 |
32 |
68 |
35 |
190 |
|
8 |
柴崎 優 |
62 |
61 |
31 |
52 |
36 |
242 |
|
9 |
赤羽 美幸 |
75 |
89 |
66 |
57 |
78 |
365 |
優勝 |
- 【問題1の解答例1】Spill(スピル)が利用できる場合
I3セルの数式は =SWITCH(RANK.EQ(H3:H9,H3:H9),1,"優勝",2,"準優勝",3,"3位","") とします。
得点の高いほうからの順位は RANK.EQ(H3:H9,H3:H9) とRANK.EQ関数を使って求めることができます。
SWITCH関数でその順位と順位に応じた結果を列記していき、
=SWITCH(・・・,1,"優勝",2,"準優勝",3,"3位","")
最後に列記した値に該当しないものには規定値(ここでは ""(空白))を表示するように設定しています。
- 【問題1の解答例2】Spill(スピル)が利用できない場合
I3セルに =SWITCH(RANK(H3,$H$3:$H$9),1,"優勝",2,"準優勝",3,"3位","") と入力します。
[Ctrl]+[Enter]で数式を入力して、フィルハンドルをダブルクリックすると数式を容易にコピーできます。
ここでは、RANK関数を使ってみました。RANK.EQはExcel2010以降で使用できます。
- I3:I9セルを選択して、I3セルに数式を入力したら、[Ctrl]+[Enter]で入力を確定する方法がスマートです。
CHOOSE関数で求める場合
- 【問題1の解答例3】なお、SWITCH関数がつかえない場合はCHOOSE関数やIF関数を使って数式を作成することができます。
CHOOSE関数では該当しない値の時にエラーとなりますので、あらかじめIF関数で3以下の時に限って値を返すように数式を作成しました。
=IF(RANK(B2,$B$2:$B$15)<=3,
CHOOSE(RANK(B2,$B$2:$B$15),"優勝","準優勝","3位"),"")
と入力して、下方向へコピーします。
IF関数で求める場合
- 【問題1の解答例4】IF関数で処理すると数式は
=IF(RANK(H3,$H$3:$H$9)=1,"優勝",
IF(RANK(H3,$H$3:$H$9)=2,"準優勝",
IF(RANK(H3,$H$3:$H$9)=3,"3位","")))
となります。
SWITCH関数でセル範囲を切り替えて検索することもできます。
- 【問題2】組とNoを入力して、該当する都道府県を検索しなさい。
|
B |
C |
D |
E |
F |
G |
H |
I |
2 |
No |
A組 |
B組 |
C組 |
|
組 |
No |
都道府県 |
3 |
1 |
青森県 |
大阪府 |
福岡県 |
|
B組 |
5 |
鳥取県 |
4 |
2 |
岩手県 |
兵庫県 |
佐賀県 |
|
|
|
|
5 |
3 |
宮城県 |
奈良県 |
長崎県 |
|
|
|
|
6 |
4 |
秋田県 |
和歌山県 |
熊本県 |
|
|
|
|
7 |
5 |
山形県 |
鳥取県 |
大分県 |
|
|
|
|
8 |
6 |
福島県 |
島根県 |
宮崎県 |
|
|
|
|
9 |
7 |
茨城県 |
岡山県 |
鹿児島県 |
|
|
|
|
- 【問題2の解答例】
I3セルに =INDEX(SWITCH(G3,"A組",C3:C9,"B組",D3:D9,"C組",E3:E9),H3) と入力しました。
SWITCH関数でG3セルが A組ならセル範囲 C3:C9を、B組ならセル範囲 D3:D9を、C組ならセル範囲 E3:E9を返すようにしています。
各セル範囲からは INDEX関数で何行目のデータを返すようにしています。
- No.が1〜7と都合よく並んでいますが、ここがA〜Gがランダムに並んでいたら?
MATCH関数を使って行位置を計算します。
I3セルは =INDEX(SWITCH(G3,"A組",C3:C9,"B組",D3:D9,"C組",E3:E9),MATCH(H3,B3:B9,0)) としました。
スポンサードリンク
よねさんのWordとExcelの小部屋 »
エクセル関数一覧表 »
SWITCH関数の使い方
PageViewCounter

Since2006/2/27