• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル又はOpenOfficeで条件付き最小値を)

エクセル又はOpenOfficeで条件付き最小値を抽出する方法

sige1701の回答

  • ベストアンサー
  • sige1701
  • ベストアンサー率28% (74/260)
回答No.4

>Calcは配列数式に制限があり、IFやINDEXが含まれる配列数式は使えないらしく、苦労しています。 Calcが無いので検証できませんが 「=SUMPRODUCT(MAX((B4:B100>=0)*A4:A100))」で求められるのですよね =MAX((B4:B100>=0)*A4:A100) という配列数式 または =MAX(INDEX((B4:B100>=0)*A4:A100,)) ではだめだということですね SUMPRODUCT関数が使用可能として 以上、以下、未満、超 のく区別が微妙ですが >B列の値がマイナス(0以下)の中の最小所要時間(00:15:00) =SUMPRODUCT(MIN((B1:B100>=0)*1+A1:A100)) B列に 未入力や0がある場合 =SUMPRODUCT(MIN(((B1:B100>0)+(B1:B100=""))*1+A1:A100))

nekobucho
質問者

お礼

早々にご回答いただきありがとうございます。 こちらの数式で無事に解決いたしました。 別シートを作成しての検証作業中に、今までちゃんと計算してくれていたものが急にエラーになったりしてちょっと検証に手間取っておりました。 Calcの調子が悪かったのか、私のやり方がまずかったのかわかりませんが、とにかく最終的にはうまくいきました。 本当に助かりました。 ありがとうございました。

nekobucho
質問者

補足

補足ではありませんが、一言追加させていただきます。 皆さんをベストアンサーにしたいのですが、今回はsige1701様の「=SUMPRODUCT(MIN((B1:B100>=0)*1+A1:A100))」という数式が一番わかりやすかったので選ばせていただきました。

関連するQ&A

  • 《エクセル2000》配列数式とMIN関数を使い、最小値を出したいのですが

    いつもお世話になっております。 配列数式とMIN関数を使って最小値を出す作業をしていますが、最小値は0.3なのに0.0と返って来てしまいます。 条件は「A列が1で、B列が数字だったら」なのですが、B列には空白も入っています。 B列の空白のセルは、ISNUMBER関数でチェックするとFALSEが返ってくるのですが、もしや空白を0とみなしているのでしょうか。 COUNTIFのMIN版と言いますか、条件つきで最小値を出せる関数があればいいのですが…原因と対策をご存じの方、どうかご教示を。

  • エクセルに関しての質問です!

    図のようにB13にB列の最大値を求めたいのですが、 A列が"■"だった場合の条件付で最大値を求めたいです。 B13にどうのような数式を使えばよろしいでしょうか? よろしくお願いします┏O  ※B13=MAX(INDEX((A1:A11="■")*B1:B11,)) という回答を別の質問スレで頂いたのですが、なぜかエラーになってしまいます。 OpenOffice.org3.1を使っていますが、エクセルだといけるのにOpenOfficeだとエラーになってしまうのでしょうか・・・

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

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

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

    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"))が違うのだと想像はつくのですが、どうすればきちんとでるのかわかりません。 マクロは使わない方法でお願いします。

  • エクセル 条件つきで最小値を求めたいです

    A列に200名を超える生徒の名前が入っています。 B列に計算テストの結果が入っています。 計算テストは何度も行われており、A列に何度も同じ生徒の名前が出てきます。A列に入っている生徒の名前は1000を超えます。 A   B 田中  42 佐藤  48 鈴木  52 佐藤  56 田中  72 鈴木  60 鈴木  23 などです。この中で鈴木君のとった得点の最小値は23点ですが、それを求める数式を知りたいです。 『rankif』とか『minif』みたいな関数があればいいのですが、ないですよね。ちなみに、私が使用しているパソコンはexcel2000です。 他のシートやC列から右に生徒を判別する関数を入れていけば、私の知っている知識でも可能なのですが、関数を多用すると重くなりますし、避けたいです。また、もともとのデータの入力の仕方を変えたらいいのですが、それはできない状態です。 =MIN(IF(A2:A7="鈴木",B2:B7),false) みたいな感じかなと式を立てたのですが、うまくいきません。上の状態で、セルに23と表示されるには、どうすればいいか教えてください。お願い致します。m(_ _)m

  • 最大値最小値に色付けする。

    エクセル2013で縦に月を横に時間の項目をとりたデータがあります。 対象データを範囲指定し列ごとに最大値、最小値にセルに色付けをする方法は無いでしょうか。 ちなみに行毎に色づけするのは 最大値は=A1=MAX(INDIRECT("A"&ROW(A1)&":F"&ROW(A1))) 最小値=A1=MIN(INDIRECT("A"&ROW(A1)&":F"&ROW(A2))) で出来るのですが、列毎に表示するにはどのような関数を使えば出来るのでしょうか。 また、条件付き書式設定で=b2=max(b2:b13)の数式を入れて隣にコピーするときに絶対値になっており範囲指定しなおす必要があるので表を範囲指定し数式を入れたい。

  • openoffice calc で、IF関数

    openOffice calc の IF関数についての質問です。 A列のA1からA20のセルに(A,B,C,D)が、ランダムにあるとします。 これを、A列のセルの値が”A”ならば、返す値は”あ”、”B”ならば、”い”、同じように「C→う」「D→え」 のように、値に応じた、答えをB列に出させるにはどのような関数と式を使えば良いのでしょうか? 宜しくお願い致します。

  • 最大値、最小値の求め方

    たびたびすみません。 A列 B列 あ  1 え 2 い 4 あ 0 い 0 あ 2 か 3 上記の列から"あ"以外の0を除いた最小値を求めたく MIN(IF(OR(A1:A7="あ",B1:B6<>0),"",B1:B6)) で数式配列にしたのですが、 うまくいきません。 単純なことの様な気するのですが、 ご指摘いただけないでしょうか?

  • Excelで最大値最小値の検出

    皆さん こんばんは。  データのExcel配列は下記のようになっています。空白セル(数は不定)を境目に異なるグループに分け、各グループの最大値あるいは最小値を(グループごとに計算すればできますが、データの量が多いので手間かかります)一遍で検出したいですが、何かいい方法はないでしょうか。皆さん教えてください。宜しくお願い致します。 A列     B列        C列      D列     (時間)  (データ)     (最大値)   〈最小値) 0:00   7.316784186 0:05   7.178492184 0:10   7.031467139 0:15 0:20 0:25 0:30   4.878174647 0:35   3.402687629 0:40   2.051343872 0:45   0.420805671 0:50 0:55   2.175188612 1:00   2.849337126 1:05   3.256652642 1:10 1:15   4.427495186 1:20 1:25 1:30 1:35   6.008051928 1:40   6.773041277  ・    ・  ・    ・  ・    ・  ・    ・

  • エクセルで条件に合った最大値を求めるには

    A B 7 5 8 6 8 9 7 4 上記のような配列で数値が入力されています。 A列が7の時のB列の最大値(今の場合は5)を求めたいのですが 何かいい関数はないでしょうか? =MAX(IF(A2:A5="7",B2:B5,0)) でやろうとしたのですがうまくいきませんでした。