Deprecated : The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
条件付きで最大値/最小値を求める(MAXIFS関数,MINIFS関数):Excel関数
Home »
エクセル関数一覧表 »
Excel関数の目次 »
条件付きで最大値/最小値を求める
更新:2025/2/3;作成: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
MAXIFS関数を利用する topへ
F3セルの数式は =MAXIFS( $C$3:$C$13 , $B$3:$B$13 , E3 ) と入力し、[Ctrl]+[Enter]で確定します。
F3:F5を選択して,、[Ctrl]+[D]で下へコピーします。
関数の引数を利用する場合は、
最大範囲に $C$3:$C$13
条件範囲1に $B$3:$B$13
条件1に E3
と入力します。
最大範囲と条件範囲1は数式を下方向へコピーして利用するので絶対参照とし、条件1は相対参照とします。
Spill(スピル)が利用できる場合 topへ
Excel for Microsoft365 のようにSpillが利用できる環境では、F3セルに
=MAXIFS( C3:C13 , B3:B13 , E3:E5 )
と入力します。
F3セルにだけ数式を入力しますので、引数のセル範囲は相対参照でOKです。
配列数式で計算する topへ
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] で入力します。すると数式が {
} でくくられた配列数式になります。
Filter関数を利用する方法 topへ
Excel for Microsoft365,Excel2021以降では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
MAXIFS関数で計算する topへ
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" ) としました。
一つの数式で処理する topへ
一つの数式で計算したい場合、ちょっと小細工をします。
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関数はExcel for Microsoft 365,Excel2019以降で使用できます。
【問題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
Excel2019の場合:Spillの機能が利用できない 場合 topへ
H3セルの数式は =MINIFS($D$3:$D$13,$B$3:$B$13, F3 ,$C$3:$C$13, G3 ) とします。
H3セルの数式を H4:H5セルへコピー&貼り付けして完成です。
Excel for Microsoft365:Spill機能が利用できる 場合 topへ
H3セルの数式は =MINIFS(D3:D13,B3:B13 ,F3:F5 ,C3:C13 ,G3:G5 ) とします。
数式はH3セルだけに入力しますので、引数のセル範囲は相対参照でOKです。
Spillの機能でF5セルまで数式があふれ出します。
MINIFS関数がつかえない場合は配列数式を利用することができます topへ
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セルの数式をコピーします。
Excel for Microsoft365,Excel2021以降ではFILTER関数でも同じ計算が可能です。 topへ
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