• ベストアンサー

SUMPRODUCT関数について

指定された条件にあったセルの数を数えたいのですが、うまくいきません。 具体的に言いますと、競馬のデータなのですが、 セルG7:G33にコースの距離(1400,1600,2000など) L7:L33に着順(1,2,3,4,など)が入力されています。 ちなみにどちらも数値のみで[m]や[~着]などの記号は入力していません。 この中で、1600以下のレース(1000~1500まで)の着順や1600以上のレースの着順をそれぞれ1着、2着、3着、4着以下というように具体的に分けたいのですが、どうすれば良いでしょうか? 表にすると a       b       c        d        e 1600> (1着の数) (2着の数) (3着の数) (4着以下の数) 1600> (1着の数) (2着の数) (3着の数) (4着以下の数) こんなイメージです。 COUNTIFで1600以上のレース数はだせたのですが、着順を個別に出すことが出来ません。SUMPRODUCT関数かなとも思ったのですが、エラーか[0]になってしまいます。

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

  • ベストアンサー
  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.2

SUMPRODUCT関数は横方向に積算して縦方向にその合計を求める関数です 質問の場合は、横方向に条件が整った場合に "1"(True)となるようにします そんなですので条件を考えると1600m以下1位の場合は  (G7<=1600)*(L7=1) などとなりますね これを配列で SUMPRODUCT関数に渡せばOK  =SUMPRODUCT((G7:G33<=1600)*(L7:L33=1)) こんなんでどうでしょう あとは自身で工夫してみてください

kikukashou
質問者

お礼

ありがとうございます!無事出来ました。 自分なりに工夫して関数で求めたい値を出すことが出来ました。 本当にありがとうございました!

その他の回答 (1)

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

B1に =SUMPRODUCT(($G$7:$G$32<=1600)*1,($H$7:$H$32=COLUMN()-1)*1) B2に =SUMPRODUCT(($G$7:$G$32>=1600)*1,($H$7:$H$32=COLUMN()-1)*1) これで右方向にコピー ただ両方に1600mのレースが含まれますがいいの?

kikukashou
質問者

お礼

ありがとうございます!無事出来ました。 やはり自分で入れていた数式と若干違ってました・・・ あと1600m以上は1600mも含み、それ以外は1600mは含まないようにやってみて出来ました。ありがとうございました!

関連するQ&A