11/08/2016

Excel。最小値はMIN関数。だけどデータ内に0(ゼロ)があってうまくいきません。

Excel。最小値はMIN関数。だけどデータ内に0(ゼロ)があってうまくいきません。

<SMALL関数+COUNTIF関数>


ちょっとした質問をいただきまして、実験データなんだそうですが、
そのデータから最小値を求めたいけど、うまくいきません。だそうでして。

次の表のようなものらしいのですが。
 
B列の実施ポイントから、最小値をD3に算出したいということですから、
別にMIN関数で求められるはず…ではないのです。

一応、やってみましょう。D3をクリックして、
オートSUMボタンの▼をクリックして、最小値を選択して、B3:B12を範囲選択してみましょう。

D3の数式は、

=MIN(B3:B12)

 
結果は0(ゼロ)が算出されましたが、リクエストは、0(ゼロ)を除いた最小値ということ。

つまり、MIN関数では当然ですが、0(ゼロ)が最小値なので、
0(ゼロ)を算出してしまうわけです。

本当なら、この手のデータは0(ゼロ)を入力しないで、空白にしておく、
 
あるいは、-(ハイフン)のような文字をいれておく。
 
このようにすれば、問題は解決するのですが、0(ゼロ)はすでに入力されている。

この状態で、0(ゼロ)を除いた最小値を求めたいというのが、今回のリクエストなんですね。

なので、ちょっと、ややこしい。MIN関数では算出することが出来ないのです。

そこで、どうやって、0(ゼロ)を除くのか?というと、
SMALL関数とCOUNTIF関数を使うと算出することが出来るのです。

SMALL関数は、指定したワーストのデータを求めることができる関数ですね。

そこで、0(ゼロ)の総数を数えて、
その数にプラス1した数値のデータを持ってくることが出来れば、
それが0(ゼロ)を除いた最小値というわけです。

なので、0(ゼロ)の数を数えるために、COUNTIF関数を使うわけです。

では、やってみましょう。
D3にSMALL関数ダイアログボックスを表示しましょう。
 
配列には、B3:B12
順位には、COUNTIF関数をネストしますので、
COUNTIF関数ダイアログボックスを表示させるようにしましょう。

名前ボックスの▼からネストする関数を選択していきます。
 
範囲には、B3:B12
検索条件には、0(ゼロ)
を入力して、SMALL関数ダイアログボックスにもどりましょう。

数式バーのSMALLという文字をクリックすると、戻れますね。
 
そして、OKボタンをクリックしましょう。
ただ、まだ数式は作成途中です。
今のところまでの数式は、

=SMALL(B3:B12,COUNTIF(B3:B12,0))

となっていますので、COUNTIF関数の結果に+1(プラス1)するように数式を修正します。
最終的に数式は、

=SMALL(B3:B12,COUNTIF(B3:B12,0)+1)

とします。

これで、算出することができましたね。
 
このように、どうしてもデータ上0(ゼロ)が入っている場合に最小値を求めたい場合は、
MIN関数は使えませんので、ご注意ください。