- ベストアンサー
エクセル2002で条件を満たす最小値を求める
以下の条件を満たす最小値を列ごとに求めたいのですが、どうすればいいのでしょうか。 AC16,AD16,AE16,$AC$1はすべて数値です。 =AND(AD16<-5,AD16>-30,(AD16-AC16)<$AC$1,(AE16-AD16)>0)
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>上の例ですと、データはAC列、AD列、AE列の2行目以降にあり、AD列の1行目に条件を満たす最小値を表示したいのです。 例えば2行目から100行目までのデータなら、以下の式を入力して、CtrlキーとShiftキーを押しながらEnterして確定して配列数式にしてください(数式の両側が「{」と「}」で囲まれた数式になります)。 =MIN(IF((AC2:AC100<-5)*(AC2:AC100>-30)*(AD2:AD100-AC2:AC100<$AC$1)*(AE2:AE100>AD2:AD100),AD2:AD100,"")) なお、上記の式はどの部部分が固定される列か不明だったので、ひとまず相対参照の数式にしていますので、必要に応じて絶対参照または複合参照の数式に変更してください。
その他の回答 (2)
- koko88okok
- ベストアンサー率58% (3839/6543)
> エクセル2002で条件を満たす最小値を求める 一般的には、DMIN関数を使うようですが、・・・ 「DMIN関数の使い方」 http://www.excel-list.com/dmin.html > =AND(AD16<-5,AD16>-30,(AD16-AC16)<$AC$1,(AE16-AD16)>0) 書かれている数式の意味が理解できかねます。 AD16<-5 ほかをすべて満たす 数式の一部のように思えます。 (言葉でも追加すれば、ヒントになると思います。)
》 …を列ごとに求めたい… お示しの式はどの列に対するものですか?あるいは、当該式を入力するセルはどの列ですか? 「列ごと」ということは、最小値を求める式を「列ごと」に入力するものと推察しています。式を「列ごと」にコピーすると、式中の「$」なしの列記号は変化しますよ。
補足
ありがとうございます。上の例ですと、データはAC列、AD列、AE列の2行目以降にあり、AD列の1行目に条件を満たす最小値を表示したいのです。同じようにして、ほかの列の最小値も求めたいのです。関数のコピーでほかの列も求めるつもりだったので、変化するようにしてあります。
補足
数式の意味は、AD16が-30より大きく-5より小さいときに、AC16との差が$AC$1より小さくかつAE16との差が0より大きい場合を求めています。これは条件付き書式の設定欄に記入したもので、色は変わるのですがその数が多いので、その条件を満たす値の最小値をAD1に表示したいのです。