• ベストアンサー

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

こんにちは、文章だけで書くと分かりにくいため、添付の図もご覧頂ければと思います。 ある条件を満たすものを、ピックアップし、その範囲、項目たちの中でだけ計算式を行う ということを行いたいです。 例えば、文房具の種類が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% (7418/18948)
回答No.1

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

関連するQ&A

  • エクセル関数で条件に一致したものの合計

    エクセル関数で条件に一致したものの合計 を計算することはできますでしょうか? SUMIFを使えばできるような気もするのですが、どうやったら良いのか分かりません。どうか教えてください。 やりたいことは、、 A列に1 or 2が入ってます。下記みたく。 1 2 2 1 2 1 B列に数字が入っていて、A列が2である行のB列の合計を求めたいのです。 よろしくお願いします。 -- エクセル2003

  • Excel関数の条件に年月を指定する方法

    エクセルの関数について教えてください。 以下のような計算をしたいのですが、 =SUMIF(A2:A50,条件,B2:B50)の条件に年月(例えば2010/11)を指定する方法を教えてください。 A列       B列 2010/10/26   20 2010/11/8   512 2010/11/22   100 2010/11/1   113 2010/12/13   340 2010/10/4    20 2010/11/15   72 2010/12/20   30 2011/1/14    56 2011/2/14    130 合計 2010/11    =SUMIF(A2:A50,条件,B2:B50) 2011/1     =SUMIF(A2:A50,条件,B2:B50)

  • Excel2010 複数条件の計算方法

    複数の条件に該当する項目の合計を計算したいのですが、関数の作り方が分かりません・・・ 例えば、A列に文字があってB列に数値が入力されている表があったとして、A列にある項目の中から2つ以上に該当する数値の合計を計算する場合、どのような関数にすれば良いのでしょうか? 例えば、A列に果物の名前(りんご、みかん、ぶどう、メロン・・・)があり、B列にその値段が入っていて、「りんご」と「みかん」と「メロン」の値段の合計を算出するような場合、どのような関数になりますか? 条件がひとつであれば、SUMIF関数を使って計算できるかと思いますが、2つ以上の場合、どのようにすれば良いか分からないのです。 Officeのバージョンは2010です。 ネットで検索してもイマイチ分かりませんでした。どなたか簡単に教えて頂けますでしょうか?

  • SUMIF関数で、条件に日付範囲で指定するには?

    SUMIF関数で、条件に日付をいれたいのですが、 10日毎の範囲で集計を取るにはどうすればいいでしょうか。 A列に日付、B列に数値で =SUMIF(A:A,"【2013/9/1~2013/9/10】",B:B)  こんな感じで日付の部分が問題のところです。 date関数を入れてみると例えば9/3だけなど、一日だけの計算はできたのですが… 1~10,11~20、21~末日(31日)で合計するにはどう記入すればいいでしょうか。

  • エクセル 複数条件

    教えてください!!    A列  B列  C列 1  済   B   100   2       A   200 3       B   100  4  済    A   200 5       C   100 A列が空白で、B列に「A」と「B」が入力されている、C列の合計を求める関数がわかりません。 B列にAとBが入力されているC列の合計は「=SUMIF(A1:A5,"A",C1:C5)+SUMIF(A1:A5,"B",C1:C5)] で求めることができました。この条件に「A列が空白(未入力)」の場合という条件を加えたいのです。 関数覚えたてなので解りやすく教えていただければありがたいです。 よろしくお願いします。

  • SUMIF関数で検索条件がわからず困っています

     ECXEL 2003(OS:WindowsXP)を使用しています。  A    B    C  10  150  50  10  150  80  10  150  20  15  100  100  20  60   40  20  60   20  上記の表でA列内の同じ数値にあたるC列の合計数をB列の各々のセルに表示させようと思っています (例:A列の「10」のC列の合計「150」をB列の各セルに表示)。SUMIF関数の「検索条件」の欄に 文字列やセル名ではなく、A列内で同じ数値ごと(例:10・15・20の各合計がでるよう)に自動計算する数式が あるように聞いていますので、教えて戴けないでしょうか?  また、SUMIF関数にこだわらずいい方法があれば教えていただけましたら幸いです。

  • EXCEL SUMIF関数について

    EXCELのSUMIF関数ですが、マニュアル通り使用すると 思ったとおりの計算ができません。    A   B  C   1  1  10 100 2  2  20 200 3  3  30 300 4  4  40 400 5  5  50 500 の様な5行×3列の表で A列が>3のもののB列C列の合計を求めたい場合 =sumif(A1:A5,">3",B1:C5) とすれば990という合計が欲しいのですが、やってみると 90にしかなりません。(B列しか合計されていない) どうなっているのでしょうか。

  • Excelの関数を教えてください。

    Excelの関数を教えてください。    A  B  C 1  *  A  100  2     A  200 3  *  B  300 4  *  A  400 上記のような表があるとします。 「A列が*でなおかつB列が"A"の時Cを合計しなさい。」というような式を作りたいのですがどのようにしたらよいでしょうか?うえの表で言うとこの式で「500」という数字を表示したいのです。条件が1つの時は「SUMIF」関数でやったのですが条件が2つとなった時どうしたらよろしいでしょうか?

  • ExcelのSUMIF関数で検索条件が複数あるとき

    A="あ" もしくは、A="い" のときのBとCの合計を求めたいと思ってます。 SUMIF関数で計算できるのは分かったのですが、計算式が長くゴチャゴチャ しているので、もっとスマートに計算できる方法があれば、教えてください。 =SUMIF(A1:A5,"=あ",B1:B5)+SUMIF(A1:A5,"=あ",C1:C5)+SUMIF(A1:A5,"=い",B1:B5)+SUMIF(A1:A5,"=い",C1:C5)   A  B  C 1 あ 500 80 2 い 300 50 3 え 800 40 4 い 200 80 5 う 100 60

  • エクセル 関数 条件分岐

    いつも回答して頂き、とても感謝しています。 前回、質問して回答して頂いたのですが、新たに分岐(アルミ1、アルミ2、アルミ3)が生まれたので質問します。 前回に教えて頂いた関数式が以下の通りです。 =SUMPRODUCT(SUMIF($B$4:$B$13,B17:B23,IF(ISNA(MATCH("天井交換",B17:B23,0)),$D$4:$D$13,$C$4:$C$13))) B17セルに、アルミ1と入れた時、条件1または条件2の列が参照して、計算される。 B17セルに、アルミ2と入れた時、条件3または条件4の列が参照して、計算される。 B17セルに、アルミ3と入れた時、条件5または条件6の列が参照して、計算される。 様にしたいのですが、どうすればよろしいのでしょうか? 御指導の程宜しくお願い致します。

専門家に質問してみよう