見出し画像

麻雀データ管理(初級編)Vol.2

こんにちは。
今回は前回作った対局結果のシートに基づいて、選手ごとの「対局数」「トータルポイント」「平均スコア」を集計していきたいと思います。


1.集計表シートを追加し集計したい項目を入力

ではいよいよ集計表の作成に取り掛かりたいと思います。
まず新しいシートを追加し、ここでは集計表とシート名をつけておきます。
そして下の画像のように集計したい項目を入力します。
1着回数~4着回数の欄には後の集計の都合上半角数字のみを入力してください。

そして半角数字のみを入力したセル(I2:L2)を選択し、上の方にある「表示形式」→「数字」→「カスタム数値形式」と選択すると下の画像のようなダイアログが出てきますので、一番上の枠内に「0着回数」と入力し「適用」をクリックしてください。

そうしますと下の画像のようにそれぞれの表示が◯着回数となります。
見た目上は◯着回数となっていますがセルの内部的には数字のみが入っている状態になります。

2.名前の列に数式を入力

まず集計の動作確認のために対局結果シートに日付、対局者、スコアを適当に入力しておきました。(着順は自動で表示されます)

では集計表の名前の列の入力に移りたいのですが、未対局の方の名前は表示したくないので数式を使ってそのようにしたいと思います。
そんな時に便利なunique関数(指定した範囲内の重複しないデータを取り出せる)というものがあるのでそちらを使っていきます。

集計表の名前欄の一番上のセル(B3)に画像のように「=unique('対局結果'!D3:D)」数式を入力すると対局経験のあるメンバーの名前だけが抽出されます。エクセルの場合はおそらく一番下に0と出てきてしまうのでもうひと工夫必要ですが、GoogleSpreadsheetでは必要ありません。

3.選手別の対局数を集計

今回は余裕を持って100人分のデータが集計できるよう作っていきたいと思います。集計表のC3セルに「=countif('対局結果'!D:D,B3)」と入力し、C102セルまで数式をコピーすればOKですが、これですと名前欄が空白の行には「0」と表示されてしまうので気になる方はC3セルに「=if(B3="","",countif(対局結果!D:D,B3))」と入力しC102セルまで数式をコピーすると良いでしょう。

4.選手別のトータルスコアを集計

これにはsumif関数を使えば良いのですが、他の集計にはsumifs関数を使うことが多く、使い分けが面倒なので私はすべてsumifs関数で統一しています。今回もsumifs関数を使っていきたいと思います。
sumifs関数の構文は「=sumifs(合計範囲,条件範囲1,条件1,条件範囲2,条件2,…」となるのでD3セルに「=sumifs('対局結果'!E:E,'対局結果'!D:D,B3)」と入力し数式を下までコピー。
これも対局数と同じで名前が空白の行の「0」が気になる方は「=if(B3="","",sumifs('対局結果'!E:E,'対局結果'!D:D,B3))」とすれば良いでしょう。

5.平均スコアを算出

平均スコアは「トータルポイント÷対局数」で算出できるので、F3セルに「=D3/C3」で求められますが、このままだと名前のない列にはエラー表示が出てしまうのでiferror関数を使い「=iferror(D3/C3,"")」とし、エラーの場合は空白にとすると良いでしょう。

6.arrayformula関数

今まで集計は表の最上部に入力しそれを下にコピーする形で入力してきましたが、実は一番上のみに数式を入力すれば選択した範囲すべてに反映されるとっても便利な「arrayformula関数」というものがあります。
エクセルでいうところの配列数式ですね。
ここではその方法は割愛しますが、興味がある方は調べてみてください。

では今回はこのへんで。
次回は各着順の回数とトップ率、4着回避率の算出、そして-10.0みたいな表示を▲10.0に変更する方法をやっていきたいと思っています。

この記事が気に入ったらサポートをしてみませんか?