- ベストアンサー
ExcelのCOUNTIFについて
- Excel2007を使用しています。COUNTIFについて次のようなことは可能か教えて下さい。
- A~Fさんまでそれぞれ行によって成績をまとめてあります。そして、D~F列の1,2、3、4という数字は、K列、N列の順位の回数をCOUNTIFにてそれぞれカウントしています。
- 問題は8行目のFさんなのですが、上と同様にI8~N8をCOUNTIFでカウントすると、本来は2G目の2着のみなのですが、I8~N8を対象範囲としているのでL列の『P』(※ポイントです)の+3.0を誤って3着にカウントしてしまい、F列の3着のところに1つカウントしてしまっています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
添付図を見た感じ2003位前バージョンではなさそうなので D3セル:=COUNTIFS($I3:$N3,D$2,$I$2:$N$2,"着順") と言うのもありですね。 要するにCOUNTIF関数の複数条件バージョンです。 こちらの方がわかりやすいかな。 まぁ、#2さん同様のコメントなんですが、 私も(特定の目的が無い場合を除き)「縦に伸ばして、集計表は別に持つ」方が良いと思いますよ。 集計機能やフィルタ機能などを使えば、推移を見るのも楽ですし、 何より横方向にだだっ広い表は見ていて疲れますから。
その他の回答 (2)
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
基本的に、横の方向にどんどんデータを延ばしていく表の作り方は、お勧めしません。今後はなるべく、下に延ばす表を作る工夫をしましょう。Excel で計算しにくいというだけでなく、人間にとって読みやすい表にすることが望ましいです。 下に延ばすには、同じ人の名前のレコード(行)が繰り返し登場するにようにすればいいだけですね。表にフィルタを取り付ければ、日付、名前などで絞り込むことも簡単にできます。ピボットテーブルというクロス集計の機能もあります。並べ替えも簡単なので、必ずしも掲載順にこだわる必要もありません。 さて、「列を1つずつ選択する方法ではなく」というのは、例えば次の数式では嫌だということでしょうか?10ゲーム以内と仮定して。 D3 =COUNTIF(K3,D$1)+COUNTIF(N3,D$1)+COUNTIF(Q3,D$1)+COUNTIF(T3,D$1)+COUNTIF(W3,D$1)+COUNTIF(Z3,D$1)+COUNTIF(AC3,D$1)+COUNTIF(AF3,D$1)+COUNTIF(AI3,D$1)+COUNTIF(AL3,D$1) 様々な数式が考えられると思いますが、例えば次式はどうなのでしょうか?100ゲーム以内だとして。 D3 =sumproduct(countif(offset(k3,0,3*(row($1:$100)-1)),D$1)) No.1 さんの式でもいいですね。
- tsubuyuki
- ベストアンサー率45% (699/1545)
とりあえず、案だけでも。 例えば問題のFさんについて。 図が見辛いのでアレですが、I列からZ列までの"着順"だけを数えるのであれば D8セル・・かな。Fさんの1位のセルに =SUMPRODUCT(($I8:$Z8=D$2)*($I$2:$Z$2="着順")) あとは、これを全員分の1~4位にコピー・貼り付けしてやれば良いです。 SUMPRODUCT関数の意味や詳細は別途お調べくださいませ。
お礼
早速の回答有難う御座いました。 Excelは2007を使っています。 COUNTIFSという複数条件がつけられる関数が2007から追加されたとは知りませんでした。 お陰で望んだ通りの結果を得ることが出来ました。 (おまけに、SUMにも複数条件付けれることも知ることが出来ました。) 本当にありがとうございました。