![見出し画像](https://assets.st-note.com/production/uploads/images/76660663/rectangle_large_type_2_8628e1141614a95f0a3cf2d5e7cc3c62.png?width=1200)
麻雀データ管理(初級編)Vol.6
こんにちは。
今回は初級編Vol.4のsort関数での並び替えの応用編になります。
任意のセルに項目のプルダウンリストを作成し、そこで選択した項目を基準に並び替える方法を紹介したいと思います。
1.項目名が入ったプルダウンリスト作成
まず最初にVol.4でやったように集計表をコピーしトータルポイントランキングの表を作成しておきます。3行目以下の数式はすべて消しておいてください。
そして任意の場所にプルダウンリストを作成します。ここでは「Z2」セルに作成しますね。(わかりやすいように太い罫線で囲っておきます)
まず「Z2」セルを選択し「データ」タブから「データの入力規則」(あるいは右クリック→セルでの他の操作項目を表示→データの入力規則)をクリックしデータ入力規則のダイアログを呼び出します。
![](https://assets.st-note.com/img/1650513256160-pbVizuYOrJ.png?width=1200)
条件→リストを範囲で指定→一番右の田んぼの田みたい部分をクリックし、「O2:X2」をセル選択(直接入力でも可)し「OK」をクリックし、ダイアログに戻ったら保存をクリックします。
![](https://assets.st-note.com/img/1650513411103-t4SatxybAy.png?width=1200)
するとZ2セルに下三角マークが現れ、クリックするとO2:X2の項目がプルダウンリストに設定されました。
![](https://assets.st-note.com/img/1650513651831-FJsSITzY7a.png)
2.sort関数のよる指定項目順の数字を作成
次にZ3セル(任意のセルどこでも良い)にプルダウンリストで選んだ項目が、トータルポイントランキング表の何列目にあたるのかを表示させます。
それにはmatch関数を使ってZ3セルに「=match(Z2,N2:X2,false)」と数式を入力します。
正しく数式が入力されるとプルダウンリストから例えばトップ率を選択すると、表の6列目にあるのでZ3セルに「6」と表示されます。
![](https://assets.st-note.com/img/1650514344220-e1Y7hMPRu5.png?width=1200)
この数字を、初級編のVol.4で作ったsort関数による並び替えの数式「=sort(indirect("B3:L"&counta(B$3:B)+2),3,0)」に代入してあげれば良いわけです。
第2引数の「3」が何列目かを指定してますから、そこを「Z3」と変えて
「=sort(indirect("B3:L"&counta(B$3:B)+2),Z3,0)」と「N3」セルに入力すれば、Z2のプルダウンリストで選んだ項目を基準にして並び替えることが出来ます。
![](https://assets.st-note.com/img/1650516291414-snZfoAowhi.png?width=1200)
2.表のタイトルを選んだ項目に変更
現在表の上部の「N1:X1」をセル結合し「トータルポイントランキング」と直接入力していますが、これをプルダウンリストで選んだ項目名に変更したいと思います。
※データ管理の表にはあまりセル結合はオススメしません。
エクセルには指定した範囲内で中央に表示するという機能がありセル結合しなくとも表の上部中央にタイトルを表示させる事ができるのですが、GoogleSpreadsheetには無いようなので見栄え上やむなくセル結合しています。
結合したセルに「=Z2&"ランキング"」と入力すれば選んだ項目と「ランキング」という文字列が合わせて表示されます。
文字列は「""」ダブルクオーテーションで囲むのを忘れないでください。
3.if関数を用いて平均着順のみ昇順に並び替え
さて先程作った数式「=sort(indirect("B3:L"&counta(B$3:B)+2),Z3,0)」
の第3引数である「0」は降順(昇順の場合は1)で並び替えることを指示しています。
ですが項目の欄の平均着順は昇順にしたいですよね。
なのでこの「0」の部分に「if(Z2="平均着順",1,0)」と代入して
「=sort(indirect("B3:L"&counta(B$3:B)+2),Z3,if(Z2="平均着順",1,0))」
と入力するとプルダウンリストで平均着順が選択された場合のみ昇順で表示されるようになります。
では今回はこのへんで。
次回からは中級編に移りまして、対局結果の表から選手ごとのレーティングを算出する方法を解説したいと思います。