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関数は使えませんので、ご注意ください。