-
Home »
-
エクセル関数一覧表 »
-
Excel関数の目次 »
-
最大値/最小値の関数の使い方
- 最大値(MAX関数)、最小値(MIN関数)、大きい方からの順位の値(LARGE関数)、小さい方からの順位の値(SMALL関数)を求めるExcel関数の使い方を説明しています。
- 昇順や降順に並べるにはLARGE関数やSMALL関数を利用します。
- 条件付きで最大値/最小値を計算する場合は 条件付きで最大値/最小値を求める(MAXIFS関数,MINIFS関数) をご覧ください。
- RANK関数は順位の関数へ移動しました。
更新:2023/10/14;作成:2003/10/3
- 数値が計算の対象となります。 空白セル、論理値、または文字列はすべて無視されます。
- 最大値と最小値を求める(問題1)
- 上限や下限がある場合に使う方法(問題2〜3)
【問題1】
- 各教科の最高点と最低点をC10:F11に求めなさい。
なお、C9:F9に平均点、F3:F8に合計も計算してみましょう。
|
B |
C |
D |
E |
F |
2 |
名前 |
国語 |
数学 |
英語 |
合計 |
3 |
井上 |
80 |
85 |
88 |
253 |
4 |
会田 |
70 |
65 |
58 |
193 |
5 |
上野 |
90 |
88 |
76 |
254 |
6 |
岡田 |
55 |
62 |
47 |
164 |
7 |
釜元 |
77 |
64 |
71 |
212 |
8 |
木下 |
64 |
75 |
69 |
208 |
9 |
平均点 |
72.7 |
73.2 |
68.2 |
214 |
10 |
最高点 |
90 |
88 |
88 |
254 |
11 |
最低点 |
55 |
62 |
47 |
164 |
【問題1の解答例】
- 合計は F3:F8セルを選択します。
F3セルに =SUM(C3:E3) と入力して、[Ctrl]+[Enter]で数式を確定します。
または、F3:F8セルを選択して、[Alt]+[Shift]+[=]を押します。(オートサムのショートカットキーです)
- 平均点は C9:F9セルを選択します。
C9セルに =AVERAGE(C3:C8) と入力して、[Ctrl]+[Enter]で数式を確定します。
- 最高点は C10:F10セルを選択します。
C10セルに =MAX(C3:C8) と入力して、[Ctrl]+[Enter]で数式を確定します。
- 最低点は C11:F11セルを選択します。
C11セルに =MIN(C3:C8) と入力して、[Ctrl]+[Enter]で数式を確定します。
【問題2】
- 通勤距離が片道4Kmを超える場合、ガソリン代1Km当たり200円20日分支給されます。
ただし、一月の支給額は30,000円を上限とします。
各通勤距離のガソリン支給額を求めなさい。
|
B |
C |
2 |
通勤距離(片道km) |
支給額(円/月) |
3 |
3 |
0 |
4 |
4 |
0 |
5 |
5 |
8,000 |
6 |
6 |
16,000 |
7 |
7 |
24,000 |
8 |
8 |
30,000 |
9 |
9 |
30,000 |
【問題2の解答例】
- ガソリン代が支給される通勤距離は4qを超えない場合は0とします。
MAX(0,B3-4) とし、往復分の「2」、1Km当たりの「200」、支給日数の「20」をかけて、
MAX(0,B3-4)*2*20*200 とします。
- 支給金額の上限は MIN関数で「30,000」と指定します。
=MIN(30000,MAX(0,B3-4)*2*20*200) とします。
【問題3】
- 勤務時間が9:00〜17:00である時、出勤時刻と退勤時刻からこの時間帯に出社していた時間を求めなさい。
ただし、エラー処理や小数誤差の対策は考慮しないものとします。
|
B |
C |
D |
2 |
出社時刻 |
退社時刻 |
勤務時間 |
3 |
8:25 |
15:30 |
6:30 |
4 |
10:15 |
16:20 |
6:05 |
5 |
10:35 |
18:00 |
6:25 |
【問題3の解答例】
- 計算の起点は、出勤時刻と"9:00"の大きい方を取り出せばいいので、MAX(B3,"9:00")
- 計算の終点は、退勤時刻と"17:00"の小さい方を取り出せばいいので、MIN(C3,"17:00")
- よって D3セルの数式は =MIN(C3,"17:00")-MAX(B3,"9:00") となります。
D3セルの数式を D5セルまで数式をコピーします。
- MAX関数は数値が計算の対象となり、 空白セル、論理値、または文字列はすべて無視されます。
MAXA関数は文字列は0とみなされます。論理値については、TRUEが1、FALSEが0とみなされます。空白のセルは計算の対象となりません。 - B8セルのMAXAでは TRUEとFALSEが計算されるので、それぞれを1と0に置き換えて計算すると、MAXAではTRUEの1が最大値となります。
B9セルのMAX関数では TRUEとFALSEは無視されるので 0.5が最大値となります。
C11セルの MINAではTRUEとFALSEが計算されるので、それぞれを1と0に置き換えて計算すると、MAXAではFALSEの0が最小値となります。
- D列以降の計算では文字列が0として計算されているのがわかります。
- 2番目、3番目に大きい値を求めるにはLARGE関数、2番目、3番目に小さい値を求めるにはSMALL関数を使うと便利です。
LARGE関数やSMALL関数でも最大値や最小値を求めることができます。
【問題1】
- 合計得点の大きい方から第一位、第二位 および 最下位、ブービー(下から二番目)の得点とその名前を求めなさい。
|
B |
C |
D |
E |
F |
G |
H |
I |
2 |
名前 |
国語 |
数学 |
英語 |
合計 |
|
得点 |
名前 |
3 |
井上 |
80 |
85 |
88 |
253 |
一位 |
254 |
上野 |
4 |
会田 |
70 |
65 |
58 |
193 |
二位 |
253 |
井上 |
5 |
上野 |
90 |
88 |
76 |
254 |
|
|
|
6 |
岡田 |
55 |
62 |
47 |
164 |
最下位 |
164 |
岡田 |
7 |
釜元 |
77 |
64 |
71 |
212 |
ブービー |
193 |
会田 |
8 |
木下 |
64 |
75 |
69 |
208 |
|
|
|
【問題1の解答例】
- 一位、二位は大きい方からの順位ですので、LARGE関数を使います。
H3セルには =LARGE(F3:H3,1) と入力します。
H4セルには =LARGE(F3:H3,2) と入力します。
- 最下位、ブービーは小さい方からの順位なので、SMALL関数を使います。
H6セルには =SMALL(F3:F8,1) と入力します。
H7セルには =SMALL(F3:F8,2) と入力します。
- 名前は INDEX関数とMATCH関数を組み合わせて検索してみました。
I3セルに =INDEX($B$3:$B$8,MATCH(H3,$F$3:$F$8,0)) と入力して、数式をI4,I6:I7セルに数式をコピーします。
具体的な操作は、I3セルのフィルハンドルをI7セルまでドラッグして数式をコピーし、I5セルを[Delete]キーでクリアします。
【問題2】
- 各教科の0点を除いた最低点をC9:D9に求めなさい。
|
B |
C |
D |
2 |
名前 |
テスト1 |
テスト2 |
3 |
井上 |
80 |
0 |
4 |
会田 |
70 |
65 |
5 |
上野 |
0 |
88 |
6 |
岡田 |
55 |
0 |
7 |
釜元 |
0 |
0 |
8 |
木下 |
64 |
75 |
9 |
最低点 |
55 |
65 |
【問題2の解答例】
- 0点の次に小さい値を求めればよいので、0点の数を求め、その次に小さい値をSMALL関数で求めます。
C9セルは=SMALL(C3:C8,COUNTIF(C3:C8,0)+1) となります。
- Microsoft365ではFilter関数を使うことができます。
詳細な使い方は FILTER関数でデータを抽出する:Excel関数 をご覧ください。
C9セルに =SMALL(FILTER(C3:C8,C3:C8<>0),1) と入力しています。右へ数式をコピーします。
0でない数値をFILTER関数で配列に取り出して、SMALL関数で一番小さい値を取り出しています。
なお、=MIN(FILTER(C3:C8,C3:C8<>0)) でも同じ結果になります。
【問題3】
- G列に年齢が高い順番に名前を並べなさい。なお、数式を使って年齢が高い順に並べてください。
|
B |
C |
D |
E |
F |
G |
2 |
No |
氏名 |
生年月日 |
年齢 (2018/11/26現在) |
|
|
3 |
1 |
葛西 祐基 |
1965/6/28 |
53 |
|
藤本 ヒロ |
4 |
2 |
宮下 涼 |
1965/5/20 |
53 |
|
高原 隼士 |
5 |
3 |
浜田 希 |
1975/6/12 |
43 |
|
宮下 涼 |
6 |
4 |
川井 美里 |
1994/4/16 |
24 |
|
葛西 祐基 |
7 |
5 |
高原 隼士 |
1952/2/8 |
66 |
|
浜田 希 |
8 |
6 |
笹川 満 |
1979/5/2 |
39 |
|
笹川 満 |
9 |
7 |
柴崎 優 |
1991/6/10 |
27 |
|
横田 まさし |
10 |
8 |
赤羽 美幸 |
1992/8/14 |
26 |
|
平 奈央 |
11 |
9 |
平 奈央 |
1988/7/9 |
30 |
|
柴崎 優 |
12 |
10 |
横田 まさし |
1981/9/5 |
37 |
|
赤羽 美幸 |
13 |
11 |
藤本 ヒロ |
1952/1/4 |
66 |
|
川井 美里 |
【問題3の解答例】
- 同じ年齢の人がいるので、年齢の列 E列を基準にすることができません。
D列の生年月日を基準にして氏名を取り出します。つまり、生年月日はシリアル値なので、小さい値ほど早く生まれたことになりますので、生年月日の小さい順で氏名を取り出します。
- G3セルに =INDEX($C$3:$C$13,MATCH(SMALL($D$3:$D$13,ROW(A1)),$D$3:$D$13,0))
と入力して、下方向へフィルハンドルをドラッグして(オートフィルで)数式をコピーします。
- 一番小さい生年月日は SMALL($D$3:$D$13,1)、2番目に小さいのは SMALL($D$3:$D$13,2)、3番目は SMALL($D$3:$D$13,3) ・・・
といった具合になるので、この部分の数式は SMALL($D$3:$D$13,ROW(A1)) としました。(下方向にコピーしたときに赤字の部分が 1,2,3・・・となるようにしています)
氏名を取り出すのには INDEX関数とMATCH関数を組み合わせます。詳細な説明は INDEX関数の使い方 をご覧ください。
- 逆に、年齢の若い順に並べるには、G3セルに =INDEX($C$3:$C$13,MATCH(LARGE($D$3:$D$13,ROW(A1)),$D$3:$D$13,0)) と入力して、下方向へフィルハンドルをドラッグして(オートフィルで)数式をコピーします。
つまり、上記の SMALL関数を LARGE関数に置き換えるだけでOKです。
(別解)Excel for Microsoft365やExcel2021では SORTBY関数が使えるようになりました
- Excel for Microsoft365やExcel2021では SORTBY関数が使えるようになりましたので、これらのような複雑な?数式は不要となりました。
詳細な使い方は SORTBY関数で指定した範囲または配列でデータを並べ替える:Excel関数 をご覧ください。
- G4セルに =SORTBY(C4:C14,D4:D14) と入力するだけです。
生年月日を基準にして、昇順に並べ替えています。
- G4セルに =SORTBY(C4:C14,D4:D14,-1) と入力するだけです。
生年月日のを基準にして、降順に並べ替えています。
スポンサードリンク
よねさんのWordとExcelの小部屋 »
エクセル関数一覧表 »
最大/最小の関数(MAX,MIN,LARGE,SMALL)の使い方
PageViewCounter
Since2006/2/27