見出し画像

Tableau 8つのハードルを越える⑨「集計と非集計 その1」

画像1
~ 2024年7月 Tableau Version 2024.2対応済み ~

Tableau 8つのハードルを越えるシリーズ、9回目になりました。
今回から4つ目のハードル 『集計』 と 『非集計』 に入ります!
この連載記事については下記をご参照下さい。

「集計」「非集計」の概念はTableauを使う上で、とても大事になってきます。数回にわたって詳しく解説したいと思います。Tableauで計算式を作っている方には、是非読んで頂きたい内容です。

まず、Tableauで計算Fieldを作るとき、使われる計算式には多く分けて
・集計計算
・非集計計算
の2種類があります。
(その他にも「表計算」、さらに進むと「LOD計算」というものも出てきますが、これらは別途説明させて頂きます。)

Tableauで「サンプルスーパーストア」データに接続すると
メジャーの部分は

このようになっています。

今、売上と利益のFieldを使って、売上のうちのどれだけが利益になっているか?つまり「利益率」を計算してみたいと思います。

そのためには・・

画像3

こんな計算式でよいでしょうか。

では、計算式が出来たのでカテゴリ毎の利益率を見てみましょう。
先ほど作った計算式[利益率]を列シェルフにおいて、カテゴリを行におくと・・

画像16

このようになりました。
横軸を見て下さい。事務用品が最大で、530?
売上の530倍が利益?
とんでもない数字になっていますね。もちろんこれは間違いです。

では、なぜ、こんな計算結果になったのか考えてみましょう。
ここで、Excelでの計算を思い浮かべてみたいと思います。
先ほど、Tableauで作った計算式をExcelに当てはめると、

画像5

このような計算式を作ったのと同じになります。

計算式はU2のセルでは、「 T2/Q2 」 です。
当然、U3のセルでは、「 T3/Q3 」ですね。
ここで、「 T2/Q2 を計算し、結果をU2に入れる」という事は、Excelの表の2行目だけのデータで完結しています。
同様に
「 T3/Q3 を計算し、結果をU3に入れる」という事も、Excelの表の3行目だけのデータで完結しています。

Tableauでも、これと同じ事が行われています。
Excelのように表になって目には見えていませんが、データテーブルの1行1行(レコード)の中で、それぞれの行の中だけで完結する計算が行われFieldが生成されています。

このように、それぞれの行の中で完結している計算の事をTableauでは
行レベル計算」と呼びます。
また、複数の行(レコード)のデータの集計ではないので「非集計」計算とも呼ばれます。

試しにデータソースを右クリックし「データの表示」を選んでみます。

すると、データソースの中に

このように、「利益率」が列として加わっているのが分かります。
ちょうどExcelで計算列を作った時と同じ印象ですね。

この1行(レコード)ごとに作られた「利益率」、これは何を示しているかと言うと、
それぞれの行(レコード)の取引での、売上に対する利益の割合になっています。
当然すべての行で1(=100%)以下になっています。

そして、先ほどは、この「利益率」を列シェルフに置いたわけです。
何が起きたか、もう一度振り返ってみます。

画像16

このように
合計(利益率)」
となっていました。

これは、「利益率」というFieldを集計し合計しましたよ。という値になっています。
1行1行は「1」以下の数値ですが、それを何百レコード、何千レコードと足しているので当然、1を超えたバカでかい数字になっています。

では、正しくはどのようにすれば良いか、見ていきましょう。

試しに、列に置かれた「利益率」の集計の方法を平均に変えてみます。

画像16

すると、

画像16

それぞれ、0.1(=10%)強、とそれらしい数字になりました

ですが

これは、どんな数字かというと
「1行1行のレコードごとの利益率の平均をとってみました。」
という数字です。
これも、カテゴリ毎の利益率=「カテゴリ毎に、いくら売り上げていて、そのうちの何%が利益になったか」という数字ではありません。


そこで必要になるのが、「集計計算」です。

[利益率]の計算式を

画像11

このように変更しました。
利益、売上双方に「SUM()」というデータを集計する計算式が追加されています。
これにより、
「ある切り口でデータを分け、その中で利益を合計し、それを、同じ切り口で売上を合計したもので割る」という計算式になっています。
これが、正しい計算式になります。

では、この切り口とは、どんな切り口になるのか?
これは、ワークブックを作るときに、列や行、マーク(色、形状、サイズ、テキスト、詳細、パス)、ページに、どのディメンションを置いているかにより、変幻自在に変化します。

例を見てみます。
今、新しく修正した[利益率]を列に
カテゴリを「行」におきました。

画像12

列におかれた利益率は「集計(利益率)」
となっています。この「集計(Field名)」は、
「このメジャー( = Field名)は既に集計計算したものです。特に合計や平均など改めての集計はしていません。」
という意味になります。

そして、この場合、集計を行う「切り口」は行においた「カテゴリ」毎となっています。

では、さらに地域を行に置いてみましょう。

画像13

このようになります。

この時の切り口は、データを「カテゴリ」毎に分け、さらに「地域」によって分けているので、「カテゴリ」と「地域」の組み合わせ全てとなっています。
当然、[利益率]の計算式で、利益、売上の集計を行う切り口も、「カテゴリ」と「地域」の組み合わせ毎となっています。

Excelで同じことをするイメージを思い浮かべると、
「データを分ける切り口に応じて、どの行の利益、売上を合計するかを臨機応変に変更し、抜き出して計算を行っている。」
そんなイメージです。
このように、データの切り口に応じて必要なデータを取り出し、集計する計算を「集計計算」と呼びます。
また、この切り口(例 「カテゴリ」、や、「カテゴリ」と「地域」の組み合わせ )の事をTableauでは「粒度」(英語ではLevel of Detail  略すとLOD)と呼びます。

Tableauの強みは、「直観的なドラッグ&ドロップで「粒度」を自在に変更し、瞬時にデータを集計視覚化する。」そんな風にも表現できるわけです。
この、「粒度」という言葉は、今後Tableauを使っている良く耳にします。是非、記憶にとどめておいてください!

最後に、非集計計算と集計計算のイメージを図示します。

非集計計算 ( = 行レベル計算 )

画像14


集計計算

画像15

以上が、『集計』 と 『非集計』その1 になります。

下記、その2では、Tableauの集計計算の種類を解説する予定です。「属性」の話も登場します。

ご精読ありがとうございます。

*連載記事すべてへのリンクは、こちらのマガジンにまとめています。

By ritz_Tableau
2020-2023 Tableau Zen Master | 2019-2021,2023 Tableau Public Ambassador |2021 certified as Tableau Certified Professional | DATA Saber
X(Twitter) : @ritz_Tableau
Tableau Public : https://public.tableau.com/profile/satoshi.ganeko#!/
*記事の中に不正確な点などありましたら、是非、X(Twitter) Direct Messageでお知らせ下さい。よろしくお願いします。m(__)m

画像16

おことわり

当記事のコンテンツについて、商用利用でない場合は許可なく転載して頂いて構いません。(ハードル画像および他のサイトから引用している画像は除く)
転載の際は、当記事へのリンクを掲載し転載であることを明記してください。商用利用の場合は許可なく転載しないで下さい。
当記事のコンテンツについて、可能な限り正確な情報を掲載するよう努めていますが、誤情報が含まれたり、情報が古くなっている可能性があります。当記事に掲載された内容、および、当記事からリンクやバナーによって移動したサイトに掲載された内容によって生じた、損害等の一切の責任を負いかねますのでご了承ください。よろしくお願いします。


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