SSブログ

0190Excel関数で1位の回数を求める

Excelは好きだ。昔はパソコン=エクセルというくらいな時代もあったくらいで、パソコンで何かやる、パソコンで仕事をする、とExcelが思い浮かぶ。

まぁ、下手の横好きの範疇を出ないレベルであろうが、あれこれ考えて、関数を組み立てて答えを導くのは面白い。

最近は骨のある問題も少ない。そういう具体例になかなか出会わない。と思ってたら、久々に難問に出会ったので、それを紹介しよう。

あるグループでゲームをして、それを何回も続けたとき、1位をそれぞれ何回とったか。

簡単に言い換えればこういう問題だ。

今が旬な野球のデータを使って考えてみよう。
セ・リーグの10年間の順位表だ。

0190-01.jpg

この場合の、それぞれ1位をとった回数の計算式は簡単だ。

=COUNTIF(B3:B12,$A$14)

B14にはこの式が入っている。

しかし、こんな表から1位をとった回数を数えるのはどうだろう。

0190-02.jpg

これは各チームの各年のチーム打率の表だ。

横の行を通して1位を見つけるのはできる。その作業列を作って1位の回数を求めるって次善の方法は思い浮かぶ。しかし、一つの式でできないものか。

できそうで、なかなかできない。

また、こんなパターンなら、いろいろあり得るケースも多かろう。どこかにやり方はないかと探してみたが、探し方が悪いのか見つからない。

そこで、ネットで聞いて教えてもらった。簡単な例を作ってのことだが、それにしてもありがたい。数日考えていたのに、あっというまだった。そのことに感謝しつつ、忘れないようにと展開したのが今日のブログ。

=SUMPRODUCT((MMULT(($B3:$G12<=B3:B12)*1,{1;1;1;1;1;1})=6)*1)

B14の式の正体だ。

目で追うとわかるが、2013年の1位は巨人とDeNAが同率に見える。実際元データが小数3位で丸められていたので、1位の数が合計11回になってしまい焦ったが、ここだけ更に細かい数字を入れて修正した。ちょっとした愛嬌か。

MMULTという関数は目にしたことがなかったし、それにしてもすごい組合せだなぁとその技の高さに感動してしまった。

いろいろあり得るケースも多かろうと思うので、範囲などの数値をいじって色々と応用してみて下さい。
教えてくれた方、ありがとうございました。

(それにしても弱いくせにヤクルトよく打つなぁ……。(^^;)

 
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:[必須]
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。