• ベストアンサー

エクセル 複数の条件付で最小値を求めたい

SMALL関数を使用し、最小値を求めようと思ったのですが、 以下のように複数条件で絞り込んで最小値を出したいと思います。 (A-Bの組み合わせ毎の最小値を出す) A  B  C 東京 渋谷 1000 東京 渋谷 2000 東京 葛飾 2000 東京 葛飾 2500 東京 葛飾 4000 ↓ 東京 渋谷 1000 東京 葛飾 2000 複数条件抽出の場合SUMPRODUCTを使用していますが、 どうにもSMALL関数を組み込むことができず、お力を お貸しください。よろしくお願いいたします。 バージョンはエクセル2003を使用しています。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

関数を使うなら以下のような配列数式を使用することになります。 (E1セルとF1セルに絞り込み条件が入力されている場合) =MIN(IF(($A$1:$A100=E1)*($B$1:$B$100=F1),$C$1:$C$100,"")) 入力後、Ctrl+Shift+Enterキーで確定してください。

areddin711
質問者

お礼

お礼おそくなりまして大変申し訳ございません。 仰るとおりに試してみたら作成できました。ありがとうございます。

その他の回答 (1)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

このようなケースではピボットテーブルを利用することをお勧めします。 「データ」「ピボットテーブルと・・・・」で、ウィザードを起動し、行フィールドにA列とB列の項目名、データフィールドにC列の項目名をドラッグし、作成されたテーブルのデータフィールドを右クリックして、フィールドの設定で「最小値」を選択してみてください。 必要に応じてデータ範囲を大きめに設定したり、表示する必要がない項目は右クリックして「表示しない」などの処理を行ってください。

関連するQ&A

  • エクセル又は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関数も考えましたが、条件を割り当てるために不要なセルを作成しなければならないので、避けたいと思いまして。 最小時間が求まれば完成という段階なので、できれば数式で対応したいです。 色々と制約があって申し訳ないのですが、お知恵をお貸しいただけると助かります。 よろしくお願いいたします。

  • エクセル 複数条件に合うデータを数えたい

    エクセル 複数条件に合うデータを数えたい エクセルでA列に何らかの値が入っていて(=空欄でない)、かつB列の値が“○”の数を数えたいです。 =SUMPRODUCT(($A:$A="*")*($B:$B="○"))と入れましたがSUMPRODUCTはワイルドカードが使えないようで結果は「0」となってしまいダメでした。 エクセル2007を使ってるので =COUNTIFS($A:$A,"*",$B:$B,"○")としたらできたのですが2002を使っている人と共有したいので2002でも使える関数を使いたいです。 どうしたらいいのでしょうか?

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

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

  • エクセル関数 複数の条件でのデータ抽出

    エクセルの初心者です。 関数で複数の条件からデータを抽出する方法をおしえてください。 [Sheet1] date type Qty. 7/1 b-1 100 7/1 a-2 200 7/3 b-1 500 上のようにデータが並んでいます。 その中で条件にかなうQty.を下のシートに抽出したいのです。 行にはtypeが、列にはdateが並んでいます。 [Sheet2] 7/1 7/2 7/3 a-1 0 0 0 a-2 200 0 0 b-1 100 0 500 SUMPRODUCT, DGETなどいろいろ試したのですが、うまくいきません。 (条件が、列と行になっているからでしょうか) これは、同じtypeが異なるdateに出てくる場合があります。 また、dateの順番がばらばらの場合は抽出は不可能ですか。 ご多忙の中申し訳ございませんがよろしくお願いします。

  • 複数シート、複数条件でのSUMPRODUCT関数について

    こんにちわ。 SUMPRODUCT関数に挑戦していて上手くいかない点があるので教えていただけると助かります。 複数のシート(A,B,C)のそれぞれ同じセル範囲の中から、集計するシート内と一定条件に合致したものを抽出したいので、 =IF($A19=0,0,(SUMPRODUCT(($A19=A!$A$723:$A$769)*(A!$C$723:$AG$769))))+IF($A19=0,0,(SUMPRODUCT(($A19=B!$A$723:$A$769)*(B!$C$723:$AG$769))))+IF($A19=0,0,(SUMPRODUCT(($A19=C!$A$723:$A$769)*(C!$C$723:$AG$769)))) という式を作りました。3シート目位までは結果が正しく戻るのですが、途中でエラーが出てしまいます。全部で12シート分の条件にあったセルを合計したいのですが。 長すぎるのか、括弧のつけ方とかがあるのかと思うのですが、短くする方法がいまいちわからず困っています。 宜しくお願いします。

  • 複数条件から最適化する方法について

    複数条件から最適値を得る方法が分かりません(実際は、最小二乗法ですが、以下に記すa,bについて解が得られないような関数を用いています[Mathematicaでも解けなかったです]) S(a,b)という関数を作っています。 また S(a-da,b) S(a+da,b) S(a,b-db) S(a,b+db)を作ります。 S(a,b)が最小となるときは、a=a,b=bとすればいいのですが、実際は、それ以外の関数が最小となることが多いです。そこで、例えば S(a-da,b)が最小となるときは、a=a-dz,b=bとして全ての関数を計算しなおし、ループさせようとしているのですが、条件が多すぎてどのVisual Basic関数を用いていいのか分かりません。 お手数ですが、ご教授お願いいたします。 なお、環境はVB6.0です。

  • エクセル 複数条件 VLOOKUP

    おしえて下さい。 エクセルで、下記の表のように【ブック1】のA列の条件に一致するものを 【ブック2】のシート1、シート2どちらかから検索して一致するものを 【ブック1】のB列へ抽出したいのですが、IF関数やVLOOKUPの組み合わせで 可能でしょうか? うまく説明できずにすみません。 例) 【ブック1】      A  B    1 001 あああ    2 004 えええ    3 003 ううう    4 006 かかか 【ブック2】 シート1      A  B     1 001 あああ    2 002 いいい    3 003 ううう シート2      A  B     1 004 えええ    2 005 おおお    3 006 かかか

  • 《エクセル2000》複数条件を満たすレコード×2グループの平均値を求める

    こんにちは。 1行1レコードの、アンケート結果を集計しています。 データは同一のシートにあります。 (グループ1) A列に価格、B列・C列に抽出条件 (グループ2) D列に価格、E列・F列に抽出条件 BC・EF列に入力されている数値(1~4)で抽出条件を判断し、AD列の価格の平均値を出します。 抽出条件は、いずれのグループも同じです。 (例:BE列=2、CF列=4のような) 複数条件のレコード抽出の関数がSUMPRODUCTなのは知っていますが、平均値をどう出したものか、考えています。 個数でしたら、それぞれのグループで出した値を足せばいいのでしょうが、平均値ですと、それぞれのグループの平均値を足し、2で割るのは違いますよね? 良いお知恵はありますでしょうか。

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

    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複数条件のカウント

    あと一歩のところで困っています(>_<) A列に日付、B列に年齢があります。 2012/3/31時点で、35歳または40歳以上の人を抽出したいです。 ↓の式で40歳以上を抽出するところまではできたのですが =SUMPRODUCT((A1:A10=2012/3/31)*(B1:B10>=40)) 35歳という条件をどうやって追加すればいいか分かりません。 条件の追加方法について教えていただけないでしょうか? よろしくお願いいたします。

専門家に質問してみよう