-
Home »
-
エクセル関数一覧表 »
-
Excel関数の目次 »
-
条件付きで最大値/最小値を求める
更新:2024/10/24;作成:2016/4/11
条件に合致したセルの最大値を求めます
マックス イフズ
=MAXIFS(最小範囲,条件範囲1,条件1,[条件範囲2,条件2],・・・)
- 条件に合うセルの最大値を求める ことができます。
複数の条件で最大値を求めることもできます。 - なお、MAXIFS関数は Excel2019,Excel2021,Excel2024,Excel for Microsoft 365 で使用できます。
【問題1】F3:F5セルに各商品の最大値を求めなさい。
-
|
B |
C |
D |
E |
F |
2 |
種類 |
数量 |
|
種類 |
最大値 |
3 |
りんご |
61 |
|
りんご |
|
4 |
バナナ |
71 |
|
バナナ |
|
5 |
みかん |
43 |
|
みかん |
|
6 |
みかん |
20 |
|
|
|
7 |
りんご |
34 |
|
|
|
8 |
バナナ |
80 |
|
|
|
9 |
りんご |
41 |
|
|
|
10 |
りんご |
62 |
|
|
|
11 |
りんご |
30 |
|
|
|
12 |
みかん |
63 |
|
|
|
13 |
バナナ |
64 |
|
|
|
【問題1の解答例1】MAXIFS関数を利用する
- F3セルの数式は =MAXIFS($C$3:$C$13,$B$3:$B$13,E3) と入力します。
F3セルの数式を F4:F5セルへコピー&貼り付けして完成です。
- 関数の引数を利用する場合は、
最大範囲に $C$3:$C$13
条件範囲1に $B$3:$B$13
条件1に E3
と入力します。
最大範囲と条件範囲1は数式を下方向へコピーして利用するので絶対参照とし、条件1は相対参照とします。
【問題1の解答例2】Spill(スピル)が利用できる場合
- Excel for Microsoft365 のようにSpillが利用できる環境では、F3セルに
=MAXIFS(C3:C13,B3:B13,E3:E5)
と入力します。
F3セルにだけ数式を入力しますので、引数のセル範囲は相対参照でOKです。
- 関数の引数を利用する場合は、
最大範囲に C3:C13
条件範囲1に B3:B13
条件1に E3
と入力します。
数式はF3セルにだけ数式を入力しますので、引数のセル範囲は相対参照でOKです。
【問題1の解答例3】配列数式で計算する
- MAXIFS関数がつかえない場合は配列数式を利用することができます。
- F3セルに {=MAX(IF($B$3:$B$13=E3,$C$3:$C$13))} とします。
配列数式なので、=MAX(IF($B$3:$B$13=E3,$C$3:$C$13)) と入力して、[Shift]+[Ctrl]+[Enter] で入力します。すると数式が {
} でくくられた配列数式になります。
【問題1の解答例4】Filter関数を利用する方法
- Microsoft365ではFILTER関数を使いことができます。
F3セルに =MAX(FILTER($C$3:$C$13,$B$3:$B$13=E3)) と[Ctrl]+[Enter]で入力します。
F3:F5セルを選択して、[Ctrl]+[D]でF3セルの数式をコピーします。
- ほかにもいろいろな方法がありますので エクセル関数の技:条件付きで最大値、最小値を求める をご覧ください。
【問題2】G3:G5セルに各年代の最高得点を求めなさい。ただし、50歳代は50歳以上の最大値を求めなさい。
-
|
B |
C |
D |
E |
F |
G |
2 |
|
年齢 |
得点 |
|
|
最高得点 |
3 |
池田 亮 |
55 |
107 |
|
30歳代 |
|
4 |
石坂 正和 |
39 |
153 |
|
40歳代 |
|
5 |
戎 孝太郎 |
60 |
111 |
|
50歳代 |
|
6 |
大塚 はじめ |
40 |
170 |
|
|
|
7 |
葛西 祐基 |
40 |
181 |
|
|
|
8 |
門脇 直人 |
50 |
141 |
|
|
|
9 |
唐沢 亮 |
59 |
105 |
|
|
|
10 |
川上 太郎 |
45 |
116 |
|
|
|
11 |
境 たかお |
32 |
159 |
|
|
|
12 |
笹川 満 |
47 |
173 |
|
|
|
13 |
高畑 勇介 |
47 |
104 |
|
|
|
14 |
高原 隼士 |
32 |
102 |
|
|
|
15 |
竹田 明宏 |
43 |
136 |
|
|
|
16 |
津田 博之 |
31 |
189 |
|
|
|
【問題2の解答例】
- 30歳代の最高得点を求めるには、30歳代の条件を 30以上 40未満と設定しました。
数式は =MAXIFS(D3:D16,C3:C16,">=30",C3:C16,"<40") とします。
- 40歳代も同様に、年齢の条件を 40以上、50未満と設定しました。
数式は =MAXIFS(D3:D16,C3:C16,">=40",C3:C16,"<50") としました。
- 50歳代は、ここでは50歳以上としますので、数式は =MAXIFS(D3:D16,C3:C16,">=50") としました。
- 一つの数式で計算したい場合、ちょっと小細工をします。
F3セルには 30 、F4セルは 40 、F5セルは 50 と入力して、表示形式を 0"歳""代" としています。
F6セルには 100と入力して、表示形式を [>80>]#, として 100 が表示されないようにしています。
G3セルの数式は =MAXIFS($D$3:$D$16,$C$3:$C$16,">="&F3,$C$3:$C$16,"<"&F4) として、下方向へ数式をコピーします。
条件に合致したセルの最小値を求めます
ミン イフズ
=MINIFS(最小範囲,条件範囲1,条件1,[条件範囲2,条件2],・・・)
- 条件に合うセルの最小値を求める ことができます。
複数の条件を指定した場合は、AND条件として計算されます。
- MINIFS関数はExcel2019,Excel for Microsoft 365で使用できます。
【問題1】H3:H5セルに販売店と種類が一致する組み合わせの最小値を求めなさい。
-
|
B |
C |
D |
E |
F |
G |
H |
2 |
販売店 |
種類 |
数量 |
|
販売店 |
種類 |
最小値 |
3 |
姶良店 |
りんご |
30 |
|
鹿児島店 |
りんご |
34 |
4 |
鹿児島店 |
りんご |
34 |
|
鹿児島店 |
バナナ |
71 |
5 |
姶良店 |
りんご |
41 |
|
鹿児島店 |
みかん |
20 |
6 |
鹿児島店 |
バナナ |
80 |
|
|
|
|
7 |
姶良店 |
りんご |
62 |
|
|
|
|
8 |
姶良店 |
バナナ |
64 |
|
|
|
|
9 |
鹿児島店 |
みかん |
20 |
|
|
|
|
10 |
鹿児島店 |
バナナ |
71 |
|
|
|
|
11 |
姶良店 |
みかん |
63 |
|
|
|
|
12 |
鹿児島店 |
りんご |
61 |
|
|
|
|
13 |
鹿児島店 |
みかん |
43 |
|
|
|
|
【問題1の解答例1】Excel2019の場合:Spillの機能が利用できない場合
- H3セルの数式は =MINIFS($D$3:$D$13,$B$3:$B$13,F3,$C$3:$C$13,G3) とします。
H3セルの数式を H4:H5セルへコピー&貼り付けして完成です。
【問題1の解答例2】Excel for Microsoft365:Spill機能が利用できる場合
- H3セルの数式は =MINIFS(D3:D13,B3:B13,F3:F5,C3:C13,G3:G5) とします。
数式はH3セルだけに入力しますので、引数のセル範囲は相対参照でOKです。
Spillの機能でF5セルまで数式があふれ出します。
【問題1の解答例3】MINIFS関数がつかえない場合は配列数式を利用することができます。
- H3セルに {=MIN(IF(($B$3:$B$13=F3)*($C$3:$C$13=G3),$D$3:$D$13,""))} とします。
条件は論理積で ($B$3:$B$13=F3)*($C$3:$C$13=G3) とします。
配列数式なので、=MIN(IF(($B$3:$B$13=F3)*($C$3:$C$13=G3),$D$3:$D$13,"")) と入力して、[Shift]+[Ctrl]+[Enter] で入力します。すると数式が {
} でくくられた配列数式になります。
H4:H5セルへH3セルの数式をコピーします。
【問題1の解答例4】Excel for Microsoft365ではFILTER関数でも同じ計算が可能です。
- H3セルに =MIN(FILTER($D$3:$D$13,($B$3:$B$13=F3)*($C$3:$C$13=G3))) と[Ctrl]+[Enter]で入力します。
[Shift]+[↓]キーを押して、H3:H5セルを選択して、[Ctrl]+[D]でF3セルの数式をコピーします。
- ほかにもいろいろな方法がありますので エクセル関数の技:条件付きで最大値、最小値を求める をご覧ください。
【問題2】 OR条件で複数条件の最小値を求める
- 販売店が鹿児島店または指宿店である、各果物の最小値を求めなさい。
|
B |
C |
D |
E |
F |
G |
H |
I |
2 |
販売店 |
種類 |
数量 |
|
販売店 |
販売店 |
種類 |
最小値 |
3 |
姶良店 |
りんご |
30 |
|
鹿児島店 |
指宿店 |
りんご |
47 |
4 |
指宿店 |
りんご |
47 |
|
鹿児島店 |
指宿店 |
バナナ |
55 |
5 |
姶良店 |
りんご |
41 |
|
鹿児島店 |
指宿店 |
みかん |
39 |
6 |
鹿児島店 |
バナナ |
80 |
|
|
|
|
|
7 |
姶良店 |
りんご |
62 |
|
|
|
|
|
8 |
姶良店 |
バナナ |
64 |
|
|
|
|
|
9 |
指宿店 |
みかん |
39 |
|
|
|
|
|
10 |
指宿店 |
バナナ |
55 |
|
|
|
|
|
11 |
姶良店 |
みかん |
63 |
|
|
|
|
|
12 |
鹿児島店 |
りんご |
61 |
|
|
|
|
|
13 |
鹿児島店 |
みかん |
43 |
|
|
|
|
|
- OR条件で求める場合は、各条件の最小値を求めて、それらの最小値をMIN関数で求めればよいです。
=MIN(MINIFS(1つめの条件の最小値),MINIFS(2つめの条件の最小値)) のようなイメージです。
I3セルには
=MIN(MINIFS($D$3:$D$13,$B$3:$B$13,F3,$C$3:$C$13,H3),
MINIFS($D$3:$D$13,$B$3:$B$13,G3,$C$3:$C$13,H3))
と入力して、I4:I5セルに数式をコピーします。
- 【問題3】 B列で0を除いた最小値を求めなさい。
ちなみに、=MIN(C2:C14) では 0 となってしまいます。
|
B |
C |
D |
E |
2 |
|
|
|
0を除いた最小値は? |
3 |
A |
50 |
|
|
4 |
B |
85 |
|
|
5 |
C |
0 |
|
|
6 |
A |
35 |
|
|
7 |
B |
76 |
|
|
8 |
C |
17 |
|
|
9 |
A |
44 |
|
|
10 |
B |
0 |
|
|
11 |
C |
44 |
|
|
12 |
A |
24 |
|
|
13 |
B |
0 |
|
|
14 |
C |
83 |
|
|
- 【問題3の解答例】数式は =MINIFS(C3:C14,C3:C14,"<>0") となります。
条件範囲を C3:C14 として、条件を "<>0" (0と等しくない) としています。
- 配列数式を使う場合は、{=MIN(IF(C3:C14<>0,C3:C14))} とします。
- FILTER関数を使う場合は、=MIN(FILTER(C3:C14,C3:C14<>0)) とします。
【関連ページ】
スポンサードリンク
Home »
エクセル関数一覧表 » 条件付きで最大値を求める(MAXIFS関数,MINIFS関数)
PageViewCounter
Since2006/2/27