【Tableau】属性とは

f:id:kaodora:20210104222119p:plain
自分がわかっていることだけをまとめました。
違う認識があったらぜひご教示くださいませ。難しい!

属性とは

上の図を見てください!ポケモンたちはそれぞれタイプを持っていますね。
ヒバニーが"ほのお"タイプ、ピカチュウが"でんき"タイプというように
それに対する値が1つの場合、その値を返します。
では、フシギバナのように"くさ"、"どく"とタイプが2つある場合はどうなるでしょうか。その場合は*(アスタリスク)が返されます。

・値が1つ→その値
・値が1つ以上→*(アスタリスク)
・NULLは無視される

○○に対して□□(属性)がいくつあるかを見ましょう!

上のポケモンの例で言うと、ピカチュウに対してタイプ(属性)がいくつありますか。答えは1つであり、その値の"でんき"です。
フシギバナに対してタイプ(属性)がいくつありますか。答えは2つであり、*です。

属性の切替

f:id:kaodora:20210105091530p:plain

属性にしたいピルをクリックして、「属性」を選択します。

関数ATTR

属性に切替たピルをダブルクリックしてみると中身はこのようになっています。

f:id:kaodora:20210105154609p:plain
属性にするときはこの関数ATTRで集計されています。
これを利用して、非集計の式を集計にする事もできます。
kaodora.hatenablog.com

属性の例①

f:id:kaodora:20210104224951p:plain
カテゴリ、サブカテゴリごとの売上を出します。
サブカテゴリを属性にしてみます。
f:id:kaodora:20210104225410p:plain
サブカテゴリが*になりました。
これは、カテゴリに対してサブカテゴリが複数あるからです。
では、カテゴリを属性にしてみます。

f:id:kaodora:20210104225635p:plain
あれ、変わりませんね。
サブカテゴリに対して家具がいくつあるか」という問いにしてみると簡単です。
1つしかないのでその値が返されているのです。
これは並び順を変えても同じ事です。
f:id:kaodora:20210104230359p:plain

★属性でその値を返している例

f:id:kaodora:20210104231334p:plain
北海道(地域)に対して、北海道(都道府県)は1つしかないので北海道を返しています。

f:id:kaodora:20210104231657p:plain
では、カテゴリを属性にすることに意味はないのでしょうか??

属性の例②

次に地域、カテゴリ、サブカテゴリを置いて
カテゴリに対するサブカテゴリの売上の割合を出します。合計も入れます。
f:id:kaodora:20210104233642p:plain
では、ここでカテゴリを属性にしてみましょう。f:id:kaodora:20210104233903p:plain
すると数字が変わりました。
合計を見てみると、地域に対するサブカテゴリの売上の割合になっています。
属性にするということは、ディメンションではなくなるということです。
ディメンションの役割を思い出すと、”区切る”というのがありました。
ここではカテゴリを属性にしたために、カテゴリで区切らなくなったのです。
つまりは、カテゴリで集計しないという事です。
属性は、その値を情報として持っていたいけど区切りたくない時に有効的です。
区切らずに”ラベル”のような役割を果たします。

つまずきポイント

なんとなくわかったけど、挟まれたときはどっちに対する属性なの?

f:id:kaodora:20210105133034p:plain

f:id:kaodora:20210105140140p:plain
これは「地域に対するカテゴリ(属性)」ですよね。地域に対するカテゴリは複数あるので*です。
f:id:kaodora:20210105151520p:plain
さらに細かい粒度のサブカテゴリを入れると、「サブカテゴリに対するカテゴリ(属性)」になります。なぜ、「地域に対するカテゴリ(属性)」でなくなり*がなくなったのかと思いませんか?
先ほどの話を思い出してみると、属性にすると集計されなくなるのでしたね。ここでは新たにサブカテゴリというディメンションで集計をされてしまったので、カテゴリはただのラベルになって「サブカテゴリに対するカテゴリ(属性)」になりました。
ここがわかりにくいところです。
では、さらに細かくメーカーを入れてみます。
f:id:kaodora:20210105153201p:plain
ここでも「サブカテゴリに対するカテゴリ(属性)」ですね。と思いきやの、これは「サブカテゴリ、メーカーというグループに対するカテゴリ(属性)」です。
カテゴリとサブカテゴリをひっくり返します。

f:id:kaodora:20210105153814p:plain
ここも変わりません。「サブカテゴリに対するカテゴリ(属性)」です。「サブカテゴリ、メーカーというグループに対するカテゴリ(属性)」です。
ではサブカテゴリをとってみます。

f:id:kaodora:20210105153349p:plain
「メーカーに対するカテゴリ(属性)」になりました。
つまりは属性は入れる並び順ではなくLevel Of Detail(データの粒度)に気を付けなくてはならないようです。
既にビューに存在する他のディメンション(LOD)、グループの属性が特定できる場合のみ、値が返ってくるのです。
難しい・・・。

属性の使用例

  ①値が同じかどうかチェックしたい時

 

f:id:kaodora:20210105091606p:plain
サブカテゴリがメーカーに対していくつあるか調べます。
家具カテゴリのメーカー、HonとSafcoは*なのでサブカテゴリを複数持っている事がわかります。
f:id:kaodora:20210105093458p:plain
メーカーとサブカテゴリ(ディメンション)をひっくり返してみると、確かにHonとSafcoは複数のサブカテゴリを持っています。
メジャーを属性にして値段が同じか調べたりもできそうですね。

  ②実績と予測をくっつける

f:id:kaodora:20210105093820p:plain
これは売上の年推移を示し、さらに予測を追加した折れ線グラフですが予測と実績が離れていますね。
ここで、予測を属性にしてみましょう。
f:id:kaodora:20210105093945p:plain
くっつきました。
実績に対して予測が1つしかないからです。

まとめ

属性は○○に対して□□(属性)がいくつあるか
・値が1つ→その値
・値が1つ以上→*(アスタリスク)
・NULLは無視される
属性になるとディメンションでなくなるため、”区切らず”に”ラベル”になる。
値の一致を確認したり、グラフを繋げたりする時に使う。

f:id:kaodora:20210105120202p:plain