9/17/2018

Excel。0(ゼロ)を除いた最小値の算出方法がMINIFSで楽勝になった【Exclude zero】

Excel。0(ゼロ)を除いた最小値の算出方法がMINIFSで楽勝になった

<MINIFS関数 SMALL+COUNTIF関数>

次のような表があります。

B列のデータから0を除いた最小値を算出しようとすると、
思っている以上に面倒というか簡単に算出することが意外とできません。

最小値を算出するには、おなじみのMIN関数を使うことを考えますが、
当然0が含まれていれば、0が算出されてしまいます。

つまり、「0(ゼロ)を除いて」という条件を
MIN関数では付けることができません。

また、SMALL関数を使えば算出できそうな感じもしますが、
これもプラスしたアイディアが必要になります。

LARGE関数ならば、1とすれば最大値を算出することが可能ですが、
0(ゼロ)を除いた最小値が何番目にあるのかがわからないと、
SMALL関数のみでは算出することができません。

そこで考え方としては、0(ゼロ)の件数を数えて、
その数をデータ件数から減算すれば、
0(ゼロ)を除いた最小値の場所を求めることができますので、
SMALL関数で算出することができます。

では、E2をクリックして、SMALL関数ダイアログボックスを表示しましょう。

配列には、B2:B11
順位には、COUNTIF関数をネストしますので、カーソルを表示して、
COUNTIF関数ダイアログボックスを表示します。

範囲には、B2:B11
検索条件には0
としてOKボタンをクリックします。

ただし、数式としては作成途中です。

E2の数式は、
=SMALL(B2:B11,COUNTIF(B2:B11,0))

となっていますが、この次の順位が0(ゼロ)を除いた場所にあたりますので、
+1を追加しますので、数式を次のように修正します。

=SMALL(B2:B11,COUNTIF(B2:B11,0)+1)

これで、0(ゼロ)を除いた最小値を算出することができました。

ちなみに、次のような数式でも算出することができます。

=LARGE(B2:B11,COUNTIF(B2:B11,">0"))

最小値というコトバから逆転の発想で、0(ゼロ)より大きい件数を算出して、
大きい順でその算出された数値のところが、
0(ゼロ)を除いた最小値ということになります。

”+1”をしなくていいメリットはありますが、わかりにくいかもしれません。

ところが、Office365で追加されたMINIFS関数が登場して、
数式を作るのが簡単になりました。

【Office365では、MINIFS関数】

E3をクリックして、MINIFS関数ダイアログボックスを表示します。

このMINIFS関数ですが、引数の作り込みが、イマイチで、なぜか、
最小値なのに、最大値と表示されています。

最大値(最小値)には、B2:B11
条件範囲1には、B2:B11
条件1には、”>0”
比較演算子を引数内で使うときには、
ダブルコーテーションを忘れないようにしましょう。

では、OKボタンをクリックします。

このように簡単に算出することができました。

そりゃそうですね。
MIN関数に条件検索ができるようになった、
MINIFS関数なら0(ゼロ)以外という条件を付けるだけですからね。

なお、E3の数式は、
=MINIFS(B2:B11,B2:B11,">0")

ということで、Office365ならば、MINIFS関数をはじめ、
プラスされた関数を使うことで、
今まで面倒だったものが改善できるかもしれませんね。