Tableauを使って成績下位25%を抽出する
カテゴリ:
hr.icon
最近のExcelやBI (Business Intelligence)ツールを使って、「箱ひげ図」を作ることはさほど難しくはないですが、成績下位25%の対象学生を抽出することは、簡単には出来ません。 本コラムでは、BIツール『Tableau』の関数を使った、成績下位25%を抽出する方法について解説します。 https://gyazo.com/84e9241227b447e2d00bb2928c5802a7
使用データについて:
「学生ダミー番号」、「学部名」、「学科名」、「GPA」という4項目のデータを使います。 今回の集計の『粒度』は「学科」とします。
https://gyazo.com/5be3d1c70ff192e7455dcd9042d6bcc3
(1) 使用するExcelファイルをTableauに読み込みます。
集計対象(メジャー)の「GPA」を右クリックし、「作成」メニューから、「計算フィールド」を選びます。
https://gyazo.com/0928f1bdb82935c4d9a3e3aa83de98d3
(2) 計算フィールドで、百分位を計算する「RANK_PERCENTILE」を選びます。
Tableau関数「RANK_PERCENTILE」の説明:
パーティション内の現在の行の百分位ランクを返します。オプション’昇順’|’降順’引数を使用し、昇順または降順を指定します。規定は昇順です。
この関数の説明は分かりにくいので、、、少し解説をすると、『一番小さい値を起点としてデータを並び替え、0から100までという百分位をふる』という関数になります。
今回の計算式:RANK_PERCENTILE(SUM([GPA]))
https://gyazo.com/b60f9c9423c9e724d24de086a625d257
(3) 集計対象(メジャー)に先ほど作成した「RANK_PERCENTILE」があることを確認します。
https://gyazo.com/b76d35562d0201408d9f23a52f5fdf9a
(4) ディメンションにある「メジャーネーム」を、「列」に入れます。
Tableauでは、複数の集計対象(メジャー)を扱いたい場合、「メジャーネーム」と「メジャーバリュー」を使います。
(馴染みづらいと思いますが、そういうものだと慣れてください)
https://gyazo.com/deddde2fa2372d985ecc879547cc36f8
(5) 合計(レコード数)は不要なので、はずします。
https://gyazo.com/64d7ce9ea119da3f063ca0ea797a05cf
(6) 粒度は「学科」で集計をしたいので、行に「学部名」「学科名」「学生ダミー番号」を入れます。
だだ、この時点では、「RANK_PERCENTILE」が「1.0」となっていて、変な感じがします。
https://gyazo.com/49d4efd8e057422fe2aa2504d8e85ca0
(7) 「RANK_PERCENTILE」の集計対象を変える必要があります。
「RANK_PERCENTILE」を右クリックし、「表計算の編集」を選びます。
https://gyazo.com/b0eba811b34070b6aa45469a270150b8
(8) 表計算の編集画面で、次を使用して計算「特定のディメンション」から、「学生ダミー番号」を選択します。
そうすると一番右にあるディメンション(ここでは「学科」)という粒度で、「学生ダミー番号」の「GPA」に対して、百分位がふられます。
https://gyazo.com/8d0127a5b3b34ad1d812d6832613279e
(9) 「GPA」で並び替えてみると、百分位がふられているのが分かります。
https://gyazo.com/934ea32d8aee248b24734022e18573ca
(10) データの出力は、「ワークシート」メニューの「エクスポート」から「データ」を選びます。 ※かなりシブいですが、MDB(Access形式)で出力されます。 なお「Excelへのクロス集計」は、データ量にもよりますが、かなり時間がかかることが多いので、Tableauからデータ抽出をするには、上述のMDB形式で行うことをお勧めします。 https://gyazo.com/18b782ca5a2925192423dc1544e674cb
(11) 出力されたAccessのMDBから、Excel形式でエクスポートをします。
https://gyazo.com/2d5708994b65ae198e60105fed8e83de
(12) 「学科」毎の、成績下位25%を集計するのには、ピボットを使います。
https://gyazo.com/c6566660343cd291dd6bb259acec117b
(13) 「RANK_PERCENTILE」をピボットの「列」にいれます。
ただ、このままだと何の表か分かりません。
https://gyazo.com/265c353f6b5350f9982d9b2c741693e3
(14) ピボットの列を選択し、「グループ化」を選びます。
単位は「0.25」にします。
https://gyazo.com/6c36dd0fb08229f3fb7f0269a3d43f76
https://gyazo.com/bcae66a26837d06abbffd222472a0f0b
(15) 25%毎の分布が分かるようになります。
https://gyazo.com/dfe9418a504d3b91038c9907191e0238
百分位については、Excelの「PERCENTRANK.EXC関数」と「PERCENTRANK.INC関数」でも、同様の計算が出来ますが、例えば「学科」毎の集計をかける場合は、「学科」毎のデータを抜き出してExcel関数を使う必要があるため、かなり手間がかかります。(このダミーデータの場合、13学科あるので、13回同じ作業を繰り返す必要がある)
今回の手順は、TableauとAccessも使うので、一見すると面倒そうですが、慣れると数分で作業が終わります。あと、元データに「学年」や「入試形態」という区分があれば、その区分単位で百分位をふるなど、柔軟に集計方法を変えられるので便利です。
※当コラムの文責及び著作権は、すべて投稿者に帰属します。