機能と数式 | VBA | セミナー | オンラインソフト | お問い合わせ | その他
Top > Excel > 機能と数式

0より大きい最小値



イギリスの方からメールで質問を受けました。
下図のようなデータから最小値を求めたいのですが、0は除外したいと。要するに0ではない最小値を調べるにはどうしたらいいでしょう?という質問でした。普通にMIN関数を使ったのでは0が返ってしまいますからね。



まず思いつくのはSMALL関数です。SMALL関数は「小さい方から指定した順位」の数値を返す関数です。「0ではない最小値」ということは「2番目に小さい数値」ということですから、=SMALL(A2:A8,2) という式で求められそうです。



しかし、これは0が必ず1つ存在する場合に限られます。もし0が複数あったらどうしましょう。そんなときは、SMALL関数の第2引数「順位」に工夫が必要です。上図の式では「0が1つ」とわかっているので、順位に「2」を指定しました。もし「0が2つ」だったら順位は「3」ですね。ここから次のようなルールがわかります。

 0の数  順位 
12
23
::
nn+1

作成する式は =SMALL(A2:A8,0の個数+1) です。0が何個あるかはCOUNTIF関数でわかりますので、=SMALL(A2:A8,COUNTIF(A2:A8,"0")+1) となります。



これを応用すれば次のように「0より大きい最小値」や、



「70以上の最小値」なども簡単に調べることができます。








このエントリーをはてなブックマークに追加