プロが教えるわが家の防犯対策術!

Excel2010です。
新たなデータを入力する度に数式を訂正しなくても良いように年間のデータ記入表を作成してあります。
今日現在での最高値と最低値を常に表示されるようにしたいのですが、最低値が0となってしまいます。数値以外のデータは無視されるハズなのに空白セルまでも対象範囲としているため 0 となると思い、 =MIN(A1:A365,"<>0") としてみたのですがエラーでした。
対象範囲のセルを数値以外の文字列とかにしておけば・・・とも思ったのですが、入力したデータが数値と認識されないのではこれまた困ります。
空白セルは文字列でそこにデータ(数値以外は入らない列) が入力されたら数値に変換されるとかの関数は・・?と調べてみたのですが、自分のレベルでは限界でした。
なにか方法があればご教示ください。

(実際には複数のシートを参照して得られたデータをさらに細分化した形式で、列はすでに60ほどあり他のシートで絶対参照としているものが多く、行以外の加減は難しい実情があります)

A 回答 (4件)

MIN関数はすべてのセルが空白の場合には0になります。

そこで空白の時に0でなくするには次のような式にすればよいでしょう。

=IF(COUNT(A1:A365)=0,"",MIN(A1:A365))
    • good
    • 8
この回答へのお礼

IFもCOUNTも何度も使っているのに・・このような組み合わせで、とは考えが至りませんでした。
ありがとうございました。

お礼日時:2013/04/18 10:17

少し考え方を変えてみます。


範囲の中で有効な値の個数を数えて、大きい順にならべて有効数値の最後が最小値になります。

=LARGE(A1:A365,COUNTIF(A1:A365,">0"))
    • good
    • 3
この回答へのお礼

考え方を変えてみるという柔軟性が欠如していたようです。なるほど・・です。
ありがとうございました。

お礼日時:2013/04/18 10:09

もうお気付きだと思いますが


空のセルを参照すると0になります。

もし元のデータ内に0があり得ないなら
データとしてはあり得ない 違う値に
式中で変えてしまえばいいでしょう。
しかも、それがどの値よりも大きければ
絶対最小には出てきませんよね。

0を違う値に変えるには
その値を足せばいいですよね、

選択的に足すのは
A1:A365+(A1:A365=0)*その値
これでいいでしょう。

少し手をかけて
INDEX(A1:A365+(A1:A365=0)*その値,0,0)
と、します。
これから最小を取ります。
MIN(INDEX(A1:A365+(A1:A365=0)*その値,0 0))
これで、いいでしょう

勿論「その値」は適切な値に読み替えてくださいね。

こんなのもいいかも知れません
MIN(INDEX(IF(A1:A365=0,その値,A1:A365),0,0))

お役に立てていたならば幸いです。
    • good
    • 1
この回答へのお礼

ひとつの答えを導き出すのに色々な数式があるのはわかるのですが、ご教示いただいた二つの数式が同じ答えになる意味を自分なりに検証してみたいと思います。
詳細にわたりありがとうございます。

お礼日時:2013/04/18 10:28

A1以下のセルに今


=今の式
のように記入しているのを
=IF(今の式=0,"",今の式)
に直してから、
=MIN(A1:A365)
と計算するのが一番確実で簡単な方法です。




どーしても今のシートのまましたいなら、
=MIN(IF(A1:A365<>0,A1:A365))
と記入し、「必ず」コントロールキーとシフトキーを押しながらEnterで入力します。
    • good
    • 0
この回答へのお礼

ここの考え方が間違っていたんだ、と気がつけました。
すでにシート自体が相当重たくなっているようなので、その辺を考慮しながら簡単な式で解決したいと思います。
ありがとうございました。

お礼日時:2013/04/18 10:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A