0190Excel関数で1位の回数を求める
Excelは好きだ。昔はパソコン=エクセルというくらいな時代もあったくらいで、パソコンで何かやる、パソコンで仕事をする、とExcelが思い浮かぶ。
まぁ、下手の横好きの範疇を出ないレベルであろうが、あれこれ考えて、関数を組み立てて答えを導くのは面白い。
最近は骨のある問題も少ない。そういう具体例になかなか出会わない。と思ってたら、久々に難問に出会ったので、それを紹介しよう。
あるグループでゲームをして、それを何回も続けたとき、1位をそれぞれ何回とったか。
簡単に言い換えればこういう問題だ。
今が旬な野球のデータを使って考えてみよう。
セ・リーグの10年間の順位表だ。
この場合の、それぞれ1位をとった回数の計算式は簡単だ。
=COUNTIF(B3:B12,$A$14)
B14にはこの式が入っている。
しかし、こんな表から1位をとった回数を数えるのはどうだろう。
これは各チームの各年のチーム打率の表だ。
横の行を通して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という関数は目にしたことがなかったし、それにしてもすごい組合せだなぁとその技の高さに感動してしまった。
いろいろあり得るケースも多かろうと思うので、範囲などの数値をいじって色々と応用してみて下さい。
教えてくれた方、ありがとうございました。
(それにしても弱いくせにヤクルトよく打つなぁ……。(^^;)
まぁ、下手の横好きの範疇を出ないレベルであろうが、あれこれ考えて、関数を組み立てて答えを導くのは面白い。
最近は骨のある問題も少ない。そういう具体例になかなか出会わない。と思ってたら、久々に難問に出会ったので、それを紹介しよう。
あるグループでゲームをして、それを何回も続けたとき、1位をそれぞれ何回とったか。
簡単に言い換えればこういう問題だ。
今が旬な野球のデータを使って考えてみよう。
セ・リーグの10年間の順位表だ。
この場合の、それぞれ1位をとった回数の計算式は簡単だ。
=COUNTIF(B3:B12,$A$14)
B14にはこの式が入っている。
しかし、こんな表から1位をとった回数を数えるのはどうだろう。
これは各チームの各年のチーム打率の表だ。
横の行を通して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という関数は目にしたことがなかったし、それにしてもすごい組合せだなぁとその技の高さに感動してしまった。
いろいろあり得るケースも多かろうと思うので、範囲などの数値をいじって色々と応用してみて下さい。
教えてくれた方、ありがとうございました。
(それにしても弱いくせにヤクルトよく打つなぁ……。(^^;)
コメント 0