• ベストアンサー

エクセル2002で条件を満たす最小値を求める

以下の条件を満たす最小値を列ごとに求めたいのですが、どうすればいいのでしょうか。 AC16,AD16,AE16,$AC$1はすべて数値です。 =AND(AD16<-5,AD16>-30,(AD16-AC16)<$AC$1,(AE16-AD16)>0)

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.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)
回答No.2

> エクセル2002で条件を満たす最小値を求める 一般的には、DMIN関数を使うようですが、・・・ 「DMIN関数の使い方」 http://www.excel-list.com/dmin.html > =AND(AD16<-5,AD16>-30,(AD16-AC16)<$AC$1,(AE16-AD16)>0) 書かれている数式の意味が理解できかねます。  AD16<-5 ほかをすべて満たす 数式の一部のように思えます。 (言葉でも追加すれば、ヒントになると思います。)

noname#259661
質問者

補足

数式の意味は、AD16が-30より大きく-5より小さいときに、AC16との差が$AC$1より小さくかつAE16との差が0より大きい場合を求めています。これは条件付き書式の設定欄に記入したもので、色は変わるのですがその数が多いので、その条件を満たす値の最小値をAD1に表示したいのです。

全文を見る
すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.1

》 …を列ごとに求めたい… お示しの式はどの列に対するものですか?あるいは、当該式を入力するセルはどの列ですか? 「列ごと」ということは、最小値を求める式を「列ごと」に入力するものと推察しています。式を「列ごと」にコピーすると、式中の「$」なしの列記号は変化しますよ。

noname#259661
質問者

補足

ありがとうございます。上の例ですと、データはAC列、AD列、AE列の2行目以降にあり、AD列の1行目に条件を満たす最小値を表示したいのです。同じようにして、ほかの列の最小値も求めたいのです。関数のコピーでほかの列も求めるつもりだったので、変化するようにしてあります。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルの複数条件関数

    エクセル関数の複数条件について初歩的な質問だと思うのですが、どうか関数式を教えていただけないでしょうか? IF関数でできるのではないか?と思ったのですが、うまくいかずうまくいく関数式を教えていただければ助かります。 ・AD列は作業担当者になりATSかPCTSDを選択できる(ここは既存で設定済み)<例>=IF(B21=1,VLOOKUP(Y21,作業担当!$A$2:$B$30,2,FALSE),0) ・AE列は分類コードで100/200/400のどれかが表示されるようになる(ここは設定済み)<例>=IF(B21=1,VLOOPLUP(J21,分類!$A$2:$B$8,2,FALSE),0) ・AF列はATS onlyとして<例>(AD21="ATS",AE21,"")と入力している。ここも設定済み。ATS only列はPCTSDであれば空白になるようにしている。 ・AG列はATS 100 to 500で以下のような条件式にしたいです。ここがうまくいっていません。AD列がATSでAE列が200であれば500、AD列がATSでAE列が100であれば300、AD列がPCTSDでAE列が100/200/400であれば空白にしたいです。 ・AG列の結果をもってAH列のファイナル分類コードに引き継ぎたいです。既に設定済みで<例>=IF(AG39="",AE39,AE39)としています。 AG列の条件を満たす関数式を教えていただけないでしょうか? よろしくお願いいたします。

  • Excel2000 エクセル 範囲内で条件を満たす最小の列を返す方法

    Excel2000 エクセル 範囲内で条件を満たす最小の列を返す方法 Excelで関数を使って「ある範囲内で条件を満たす最小の列を返す」 というセルの作成方法を教えていただけませんか? 例えばA1からJ1の1行に 0 0 0 1 2 1 3 6 0 0 という数値が入力されているとします。 この10個のセルを左から順に「セル内の値>0となる」という条件に合うか調べた場合、 何列目に条件を初めて満たす事ができるかを返すセルを作りたいのです。 この場合「セル内の値>0」の条件を満たす最小の列のセルは、 「1>0」となるセルD1となり、左から4列目なので 「4」 を返したい。 出来れば「ある範囲内で条件を満たす最大の列を返すセル」の作成法も教えていただけませんか? (1)の例の場合「セル内の数値>0」の条件を満たす最大の列のセルは、 「6>0」となるセルH1となり、左から8列目なので「8」を返すようなセルを作りたい。 複数のシートにデータがあり、それらのシートに一括でこのセルを作りたいため、 補助となる行を入れるのはよいのですが、 行列を入れ替えるような操作がいらない方法が知りたいです。 どうかよろしくお願いします。

  • 条件に合う最大・最小

    エクセル 条件に合う最大 最小 について このような感じです。 1___A_____G_______H_____I_____O____ 2_________4_______3____3.1____1____ 3_________4_______3____3.1____2____←最大値 4_________3.1_____3____3.1____2__ 5________-2.1____-2_____1____-1__ 6________-2.5____-2_____1____-2____←最小値 7________-2.2____-2_____1____-2___ 以下値があります。 I列の最大値又は、最小値で複数最大(最小)がある場合には、 その最大(最小)の同じ行のO列の大きい(小さい)方で、 最大値(最小値)を判断する。 同様にO列も同じならH列の大きい(小さい)方で、 また、H列も同じなならG列の大きい(小さい)方で、 最大値(最小値)を求める。 優先順位は、I列→O列→H列→G列の順 *最小値の場合には、全て小さい値を対象。 上記例示の場合には、 最大値は3行目 最小値は6行目 値を重み付け(I列を1000倍等)してから合計して、最大・最小を求める方法以外での質問です。例示では、簡単に示していましたが、それぞれ値の桁数が異なる場合には、重み付けの係数をその都度してしなければならなくなりますので。 また、最大値・最小値に値する行(A列)に最大・最小等を追記したい。 行で単純に順次値を比較する方法はないのでしょうか? 解決法を教えて頂きたいのですが、宜しくお願いします。

  • エクセル関数のエラーについて

    エクセルの関数で間違っている箇所と解決策を教えて下さい。 下記【1】、【2】関数は正しく動いています。 【1】 IF(OR(AB21="err",AC21="err",AD21="err",AE21="err",AF21="err"),"err",IF(AND((OR(H21="SC",H21="CR",H21="A",H21="R",H21="CH")),(OR(AND(AE21="○",AF21="○"),AND(AD21="○",AF21="○"),AND(AC21="○",AF21="○"),AND(AB21="○",AF21="○")))),"(1)",IF(AND(OR(H21="MS",H21="AS",H21="BX"),AE21="×",AF21="○"),"(2)",IF(AND((OR(H21="MS",H21="AS",H21="BX")),(OR(AND(AD21="×",AE21="○",AF21="○"),AND(AD21="×",AE21="-",AF21="○")))),"(3)",IF(AND((OR(H21="MS",H21="AS",H21="BX")),(OR(AND(AD21="○",AE21="○",AF21="○"),AND(AD21="○",AE21="-",AF21="○"),AND(AD21="-",AE21="○",AF21="○"),AND(AD21="-",AE21="-",AF21="○")))),"(4)",IF(AG16="","(5)","err")))))) 【2】 AND((OR(H21="SC",H21="CR",H21="A",H21="R",H21="CH")),(OR(AND(AE21="×",AF21="○"),AND(AD21="×",AF21="○"),AND(AC21="×",AF21="○"),AND(AB21="×",AF21="○")))) これを【1】関数の「AG16=""」箇所に【2】を入れたのが下記関数【3】ですが、これだとエラーになります。 【3】 IF(OR(AB21="err",AC21="err",AD21="err",AE21="err",AF21="err"),"err",IF(AND((OR(H21="SC",H21="CR",H21="A",H21="R",H21="CH")),(OR(AND(AE21="○",AF21="○"),AND(AD21="○",AF21="○"),AND(AC21="○",AF21="○"),AND(AB21="○",AF21="○")))),"(1)",IF(AND(OR(H21="MS",H21="AS",H21="BX"),AE21="×",AF21="○"),"(2)",IF(AND((OR(H21="MS",H21="AS",H21="BX")),(OR(AND(AD21="×",AE21="○",AF21="○"),AND(AD21="×",AE21="-",AF21="○")))),"(3)",IF(AND((OR(H21="MS",H21="AS",H21="BX")),(OR(AND(AD21="○",AE21="○",AF21="○"),AND(AD21="○",AE21="-",AF21="○"),AND(AD21="-",AE21="○",AF21="○"),AND(AD21="-",AE21="-",AF21="○")))),"(4)",IF(AND((OR(H21="SC",H21="CR",H21="A",H21="R",H21="CH")),(OR(AND(AE21="×",AF21="○"),AND(AD21="×",AF21="○"),AND(AC21="×",AF21="○"),AND(AB21="×",AF21="○")))) ,"(5)","err")))))) 原因と解決策(VBAは避けたいのですが・・・)を教えて頂けないでしょうか?

  • Excelで 条件に合う最小数値を求める関数 その2

    度々すいません。 Excelで 条件に合う最小数値を求める関数の件ですが次の条件で Xの最小値を求めるにはどの様な処理が有効でしょうか。 本当に申し訳ありませんが教えて下さい。 (100-X)÷((x+10)÷3)<=3 このような場合Xの条件を満たすの内最も低い数字は45ですが、 これを (200-X)÷((x+15)÷3)<=3 (300-X)÷((x+8)÷3)<=3 等の場合の数値が出せる様にしたいのです。 大変申し訳ありませんが宜しくお願い致します。

  • エクセル又はOpenOfficeで条件付き最小値を

    エクセル又はOpenOffice.orgで条件付きの最小値を抽出する数式 当方OpenOffice.orgのCalc使用です。 関数も勉強し始めたばかりで、まだまだ理解しきれていませんが、宜しくお願いいたします。 下記の条件で最小値を出す数式を色々調べては試しているのですが、中々うまくいかないので質問させて下さい。   A(所要時間)  B 1  01:00:00    04.5 2  00:30:00    20.5 3  02:10:00   -10.0 4  01:40:00    07.5 5  00:25:00   -05.0 6  00:45:00    13.5 7  00:15:00   -03.5 8  01:05:00    18.0 上記表からB列の値がプラス(つまり0以上)の中の最大所要時間(この場合01:40:00)と最小所要時間(00:30:00)、 B列の値がマイナス(0以下)の中の最大所要時間(02:10:00)と最小所要時間(00:15:00)をそれぞれ求めたいと思っています。 最大所要時間は「=SUMPRODUCT(MAX((B4:B100>=0)*A4:A100))」で求められましたが、MINではダメでした。 SMALLを使うのかもと思い調べてみましたが、だんだん混乱してしまって・・・ 似たような質問はたくさん見つかりましたが、配列数式を使用するものばかりでした。 Calcは配列数式に制限があり、IFやINDEXが含まれる配列数式は使えないらしく、苦労しています。 DMIN関数も考えましたが、条件を割り当てるために不要なセルを作成しなければならないので、避けたいと思いまして。 最小時間が求まれば完成という段階なので、できれば数式で対応したいです。 色々と制約があって申し訳ないのですが、お知恵をお貸しいただけると助かります。 よろしくお願いいたします。

  • 複数条件で最小値を求める

    Excel2007です。 複数の条件をつけて最小値を求めたいです。配列数式を使います。 A列に体重、B列に性別、C列に住所だとして 男で東京都と神奈川という条件の中から体重の最小値を求める時、 {=MIN(IF((B1:B100="男")*((C1:C100="東京")+(C1:C100="神奈川")),A1:A100)}でCtrl+Shift+Enterで確定しました。 実際のデー量はもっと多いです。 たぶんきちんと計算されているようなのですが、自信がありません。 正しい数式になっているでしょうか? マクロは使わない方法でお願いします。

  • 条件付き線形最小化問題を解くには?

    ある関数がある制約条件下でどのような最小値をとるかを数値的に計算したいと考えています。 わかりにくいのですが、式を混ぜて書くと以下のような感じになります。 (1)実数W_kについてΣW_k * F_kを最小化したい (2)F_kは実数(or複素)定数で、与えられている (3)制約条件はΣW_k=1とW_k>=0 最小二乗法のように、||ΣW_k * F_k||を最小化することはできます。 ΣW_k=1という拘束条件を入れることもできました(LAPACKのZGELSSを使用しました)。 しかし、W_k>=0を入れた場合LAPACKのルーチンの中では該当するものが見当たりませんでした。 Mathematicaの実装ノートをみると改良Simplex法を使っているとか書いてありましたので、Simplex法を自分で実装しようかなとも思いましたが、もし既存の数値計算ライブラリで、上記のような最小化問題を解くことができるのならば、その方がいいと考えています。 何かご存知の方はいませんでしょうか? またSimplex法に関して、詳しい実装に関するWebサイト、論文、書籍等ご存知の方がいましたら、教えてもらえないでしょうか? よろしくお願いします

  • 複数条件で最小値を求める

    Excel2007です。 複数の条件をつけて最小値を求めたいです。配列数式を使います。 A列に体重、B列に性別、C列に年齢だとして 男で20歳~25歳という条件の中から体重の最小値を求める時、 {=MIN(IF((B1:B100="男")*((C1:C100="20")+(C1:C100="21")+(C1:C100="22")+(C1:C100="23")+(C1:C100="24")+(C1:C100="25"))),A1:A100)} としてみたのですが、うまくいきません。 おそらく、((C1:C100="20")+(C1:C100="21")+(C1:C100="22")+(C1:C100="23")+(C1:C100="24")+(C1:C100="25"))が違うのだと想像はつくのですが、どうすればきちんとでるのかわかりません。 マクロは使わない方法でお願いします。

  • ExcelのIF式の入力について大いに悩んでいます。

    皆様の迅速な回答に感謝しています。 今回は、以下の事柄について教えて頂きたいです。 質問例 あるセルに区分に従って結果を表示させる方法。 同じシートの印刷範囲外にデータ表を下記の如く作っているとします。 AA1列にIからIVの文字表示 AB1列に5以下のIからIVに該当する数値を表示 AC1列に5~10のIからIVに該当する「計算式」数値を表示 AD1列に10以上のIからIVに該当する数値を表示 のデータ表を作っていたとします。 A1に区分IからIVの文字を入力 A2に数値(小数点以下3桁表示)を入力 A3に該当する区分に従って該当する数値を表示したい場合についてのIF式を教えてください。 AC列のIからIVに該当する「計算式」は、以下のとおり =AB2-(AD2-AB2)/(5-10)*(A2-5) といれています。 先の質問で教えて頂いた、IF式=IF(A2="","",INDEX(AA1:AD5,MATCH(A2,AA1:AA5,0),?))を利用して作ってみたものの、5以下、10以上の時に正解が表示できなくて大変困っています。 なにとぞご指導を宜しくお願い致します。

専門家に質問してみよう