ただし実用的にはデータにマイナスの数値が存在しないケースがほとんどと考えられますので、ここでは0以上の数値だけを対象として「0より大きい最小値」を求めるものとします。
MINIFS関数を使う方法
次の画像ではD3セルに数式を入力し、B列に並んだ数値のうち、0以外(0より大きい)で最も小さいものを求めています。
D3セル
=MINIFS(B3:B9,B3:B9,">0")
条件付きの最小値を求めるMINIFS関数を使っています。
MINIF関数というものがないのでMINIFS関数にしなければなりません。また、数値が入っている範囲(第1引数)と条件を課す範囲(第2引数)をそれぞれ指定する必要があるので「B3:B9」を2回指定する必要があるのが注意点です(SUMIFSと同様)。
冒頭でも触れていますが「">0"」というのは「0より大きい」という意味ですので、この式で求められるのは「0より大きい最小値」です。「マイナスの数値がある場合はそこから最小値を求めたい」という場合は「">0"」の部分を「"<>0"」としてください。
MIN/FILTER関数を使う方法
ここでも上記例と同様に、数値のうち0以外(0より大きい)で最も小さいものを求めています。
D3セル
=MIN(FILTER(B3:B9,B3:B9>0))
FILTER関数を使い0より大きい数値をすべて(5つ)抽出し、そこからMIN関数で最も小さいものを求めています。式の意味が分かりやすいので記しやすいのがメリットです。
ただし条件の記し方がMINIFS関数と異なることと、数値が複数行複数列に並んでいる場合には適用できない(条件を指定できるのが1列だけで、セル単位で値を抽出できないため)のが注意点です。
「>0」を「<>0」に代えれば、マイナスの数値がある場合はその中から最小値が求められます。
SMALL/COUNTIF関数を使う方法(旧バージョン用)
上記例で使っている関数が使えない古いバージョンでも利用できる方法です。
D3セル
=SMALL(B3:B9,COUNTIF(B3:B9,0)+1)
「COUNTIF(B3:B9,0)」で0がいくつあるかをカウントし、「+1」でそれに1を足しています。
そしてSMALL関数(小さい順に○番目の数値を求める関数)で、「COUNTIF(B3:B9,0)+1」番目に小さい数値を抽出しています。これが0以外の最小値となります。
ただしデータにマイナスの値が含まれると意図しない結果になるので注意してください。COUNTIF関数の第2引数を「"<=0"」とすれば上記例と全く同じ条件になり、マイナスの値が含まれていても「0より大きい最小値」が得られます。