• ベストアンサー

エクセル 条件付き関数 こんなことができないでしょうか!?

こんにちは、文章だけで書くと分かりにくいため、添付の図もご覧頂ければと思います。 ある条件を満たすものを、ピックアップし、その範囲、項目たちの中でだけ計算式を行う ということを行いたいです。 例えば、文房具の種類がA列に、それぞれの値段がB列に 入力していると考えてください。「消しゴム」という キーワードを頼りに、B列(値段)をピックアップし、 その項目だけに計算式を実行するということであります。 例えば、一番高い消しゴムを見つけるのに、LARGEという関数を 「A列が消しゴム」という条件のもとで実行する、ということです。 条件付き関数として、SUMIFというのがありますが、これだと 合計しかだせません。何とか任意の計算式を使えないものかと思いました。これが分かると大変助かります。 どうか宜しくお願いします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! すでに回答は出ていますが・・・ データベース関数が良いのではないでしょうか? ↓の画像で説明すると(データは20行まであります) 「合計」のF2セルは =DSUM(A1:B20,2,D1:D2) 「平均」のG2セルは =DAVERAGE(A1:B20,2,D1:D2) という具合に、最大値は=DMAX 最小値は=DMIN・・・となってます。 結局( )の中のデータが変わらないのであれば( の前だけの変更です。 ただし、タイトル行の項目も一緒に範囲指定しなければなりません。 この方法だと検索条件が複数ある場合でも 最後の 「Criteria」の欄で範囲指定するだけで問題なくその条件に合った結果が導き出せます。 データベース関数は他にもたくさんありますので URLを貼り付けておきますので覗いてみてはどうでしょうか? http://excel.onushi.com/function/data-base.htm 以上、参考になれば幸いです。m(__)m

その他の回答 (3)

回答No.3

ピボットテーブル案 集計案 データベース関数案 などありますが、数式案がよさそうなので A列が昇順となっているとして =MAX(INDEX(B:B,MATCH(D2,A:A,0)):INDEX(B:B,MATCH(D2,A:A))) =MIN(INDEX(B:B,MATCH(D2,A:A,0)):INDEX(B:B,MATCH(D2,A:A))) A列が昇順でない場合 =MAX(IF($A$2:$A$100=D2,$B$2:$B$100)) =MIN(IF($A$2:$A$100=D2,$B$2:$B$100)) いずれも[Ctrl]+[Shft] +[Enter] で確定、配列数式です({}で囲まれる)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

各列にタイトル(例:種類、値段)をつけ、検索条件(種類が消しゴム等)を別なセル範囲に設定してDMAX関数を使ってみては?

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

E1=SUMPRODUCT(MAX(($A$1:$A$22=$D1)*($B$1:$B$22)))

関連するQ&A