エクセルで指定の値の中から最大値と最小値を計算する

エクセルである範囲の中で、ある数字以上のものの中から最小値を求めたいといったことありませんか?私はよくあります。恥ずかしながら仕事のタクス管理をエクセルで行っていて、期日の迫っているタスクの中で特に直近のものをピックアップしたいときなんかによく使用しています。その場合は、タスクの日付の中から、今日以上で最小の日付をピックアップするといった式が必要となります。今回はその方法の紹介です。

指定の値以上で最小値を求める

まずは配列数式を使用する方法です。書式は以下の通り

配列数式となるため、最初と最後の{}は自身での入力はしません。そのた以外の部分を入力し最後のCtrl+Shift+Enterで入力を完了します。すると検査範囲の中からしきい値以上での最小値が取得できます。下図の例ではA1からA10の範囲内で40以上での最小値を求めています。

ちなみにしきい値を超す値の中から最小値を求める場合は、しきい値前の条件式から=(イコール)を取ってあげるだけです。

指定の値以下で最大値を求める

配列数式を使用する方法です。基本的には、指定値以上で最小値を求める方法の逆を行います。MIN関数をMAX関数へ、不等号の向きを逆へ帰ればよいです。書式は以下の通り

配列数式となるため、最初と最後の{}は自身での入力はしません。そのた以外の部分を入力し最後のCtrl+Shift+Enterで入力を完了します。すると検査範囲の中からしきい値以下での最大値が取得できます。下図の例ではA1からA10の範囲内で40以下での最大値を求めています。

ちなみにしきい値を未満の中から最小値を求める場合は、しきい値前の条件式から=(イコール)を取ってあげるだけです。

MINIFS関数を利用する(2016以降)

エクセル2016以降になるとMINIFS関数が使用できます。書式は以下の通り。

検査範囲と条件範囲を同じにすることで、指定範囲の中からしきい値以上の最小値を取得することができます。配列関数を使用するときよりもすっきりとした記載になるのに加え、しきい値の指定をセルで指定できるため、しきい値変更等でのメンテナンスが楽というメリットもあります。下図の例ではA1からA10の範囲内で40以上での最小値を求めています。

ちなみにしきい値を超す値の中から最小値を求める場合は、しきい値前の条件式から=(イコール)を取ってあげるだけです。

MAXIFS関数を利用する(2016以降)

エクセル2016以降になるとしきい値以下の中から最大値を求める場合もMINIFS同様にMAXIFS関数が使用できます。書式は以下の通り。

検査範囲と条件範囲を同じにすることで、指定範囲の中からしきい値以下の最大値を取得することができます。MINIFS関数と同様に配列関数を使用するときよりもすっきりとした記載になるのに加え、しきい値の指定をセルで指定できるため、しきい値変更等でのメンテナンスが楽というメリットもあります。下図の例ではA1からA10の範囲内で40以下での最大値を求めています。

ちなみにしきい値を未満値の中から最大値を求める場合は、しきい値前の条件式から=(イコール)を取ってあげるだけです。

まとめ

検査範囲はA1:A10の場合

■2016以前の場合
*40以上の最小値を求める場合 : {=MIN(IF(A1:A10=>40, A1:A10))}
*40超過の最小値を求める場合 : {=MIN(IF(A1:A10>40, A1:A10))}
*40以下の最大値を求める場合 : {=MAX(IF(A1:A10=<40, A1:A10))}
*40未満の最大値を求める場合 : {=MAX(IF(A1:A10=<40, A1:A10))}
■2016以降の場合
*40以上の最小値を求める場合 : =MINIFS(A1:A10, A1:A10”=>40”) 
*40超過の最小値を求める場合 : =MINIFS(A1:A10, A1:A10”>40”)
*40以下の最大値を求める場合 : =MAXIFS(A1:A10, A1:A10”=<40”)
*40未満の最大値を求める場合 : =MAXIFS(A1:A10, A1:A10”<40”)