Tableau Certified Data Analyst合格に向けて(RANK関数)
隙を見てはTableauを触っているので、家で「タブちき」と呼ばれています。
あんまり集中すると「燃え尽きちゃう」ので、ここらで程々にしようと、本棚を整理していたら「Tableau Data Analyst」受験の時に書きなぐっていたメモを発見。
あれだけ勉強したのに、何もかも忘れている自分に自虐の笑い。
(疲れているのか、しばらく一人でフフフ・・・と笑っていました)
メモの中身をご紹介しようと意気込みましたが、確認したら「shotamaさん」のブログをメモさせていただいたものでした。
本当に分かりやすくて、何度も読んで関数の基礎を覚えることができました。
shotamaさん、ありがとうございます。blog.truestar.co.jp
じゃあ、今日は何をご紹介するか・・・、おお!そうよ!
実は私、これだけはしっかり覚えたものがあるじゃないの。
当時、どれが出ても「任せとけ!」だった唯一の関数、RANK関数。
ん、RANK関数なんてRANK付けるだけじゃないの?と思っていませんか?
違うんですよ、同率順位の取り方などの違いでスコアロスしたくないですよね。
(説明文はTableu公式HELPより抜粋)
①RANK(expression, ['asc' | 'desc'])
「パーテーション内の現在の行に対して標準の競争ランクを返す。同一の値には同一のランクが振り当てられます。」
(共通)
'asc'昇順、’desc’降順。(規定降順)
Null はランキング関数では無視されます。
②RANK_DENSE(expression, ['asc' | 'desc'])
「パーティション内の現在の行に対して密度の高いランクを返します。同一の値には同一のランクが指定されますが、数列にギャップは挿入されません。」
ギャップ・・・?何とお思いでしょう。
値 RANK RANK_DENSE
6 →4 3
9 →2 2
9 →2 2
14→1 1
表のように、RANKは同率を同じ順位で表し、次の値に対して同率数分カウントしていますが、RANK_DENSEは同率を同じ順位で表し、次に来る値に対してはギャップなく次の順位を振り当てています。
③RANK_MODIFIED(expression, ['asc' | 'desc'])
「パーティション内の現在の行に対して変更された競争ランクを返します。同一の値には同一のランクが割り当てられます。」
え?え?何・・?とここで挫折しないで下さい。簡単なんです。
値 RANK RANK_MODIFIED
6 →4 4
9 →2 3
9 →2 3
14→1 1
表では「9」の値が2つあります、同率の順があるとして、RANKは「2位」として表し、RANK_MODIFIEDは同率の個数分カウントした後の数である「3位」としています。
では、①、②、③を並べてみます。
(ここから①、②、③表記にします)
値 ① ② ③
6 →4 3 4
9 →2 2 3
9 →2 2 3
14→1 1 1
RANK_DENSEはギャップなし。
RANKとRANK_MODIFIEDの違いは、同率順位の値をカウントした最初で取るか、最後
で取るかで覚えると覚えやすいです。(私解釈ですよ・・)
④RANK_UNIQUE(expression, ['asc' | 'desc'])
「パーティション内の現在の行の一意のランクを返します。同一の値に異なるランクが指定されます。」
UNIQUEっていうからには、一意なんですけどね、じゃあ同率どうなるのって疑問が湧きますね。
そこは表計算であれば上にある行から順位を振っています。
そこさえ分かれば、一番楽なRANK関数です。
値 ① ② ③ ④
6 →4 3 4 4
9 →2 2 3 2
9 →2 2 3 3
14→1 1 1 1
⑤他にRANK_PERCENTILEもありますが、模擬問題ではみかけませんでした。
百分位置のランクを返すので、比較的理解しやすいと思います。
値 RANKPERCENTILE
6 → 0.25
9 → 0.75
9 → 0.75
14→ 1.00
RANK関数は自分のものにすれば、変化球問題が来てもすんなり解けてスコアアップできる良素材。
さあ、明日もレッツタブちき。(燃え尽き寸前か?)
気分転換に、久しぶりにウィッチャー3するぞ。
最近旅行行けてないから、ゲラルドさんになって馬で大地を駆け抜けて眠りにつきます。
おやすみなさい。