見出し画像

直観的にわかりますか?

 Tableauなど、データに関して幅広く、「じっくり考えればわかるけれども一瞬見たとき、ん?となりそうなテーマ」をこちらのタイトルで紹介していきたいと思います。

今回のテーマ:2つのメジャーの割り算ってどう表現する?

 頻繁に計算式を作成することになる、2つのメジャーの割り算について、実は複数の方法で表現できることを
例として、皆様おなじみスーパーストアの【利益率】をとりあげます。

おなじみの表現方法

 Tableauだと、このような計算は、

        SUM([利益])/SUM([売上])

 と表現すると思います。

親の顔より見た計算式


 シートで指定したディメンションのコンテキストで合計したメジャーの値同士を割り算するという極めてわかりやすい式です。

 実はこれ、もう一通りで表現できるんです。みなさん、すぐに浮かびますか?
 なんと、

        AVG([利益])/AVG([売上])

 でも、表現できるんです。

本当に利益率?

 基本的に先ほどの式と同じような感じですが、
シートで指定したディメンションのコンテキストで【平均】をとったメジャーの値同士を割り算するという式です。

 それでは、この2つの値、シートで比べてみましょう。

一致している!

 見たところ、一致しています。
 なぜこんなことになるのか、すぐに理解できますでしょうか?
 データベースの行レベルから集計が行われる一連の流れをイメージできる人にとっては「当たり前じゃん」となることなのですが、すぐにはしっくりこないのではないでしょうか?

解説

 実際の小さいデータで見た方がわかりやすいので、こんな表を用意してみます。

表1:簡単な商品の売上&利益表

 まず、この表で SUM([利益])/SUM([売上]) を計算してみます。
SUM([利益]) = 2+4+6+4+8 = 24
SUM([売上]) = 10+20+24+18+30 = 102
SUM([利益])/SUM([売上]) = 24÷102 = 0.23529412…. ≒ 23.5%
です。

 では次に AVG([利益])/AVG([売上]) を計算してみます。
AVG([利益]) = (2+4+6+4+8)/5 = 4.8
AVG([売上]) = (10+20+24+18+30)/5 = 20.4
AVG([利益])/AVG([売上]) = 4.8÷20.4 = 0.23529412…. ≒ 23.5%
です。

・・・読んでいる間に気づかれたのではないでしょうか。
そうです、AVGの計算をする際に、SUMの計算をしていましたね。
AVG([利益]) = (2+4+6+4+8)/5 = SUM([利益])/5 = 4.8
だったわけです。
 また、AVG計算の分母にくる値も、COUNT([利益]) であり、これはCOUNT([売上])と同じですよね。(そうならない場合はデータに不備がある場合、と言ってしまっていい気がします)

次にまとめますが、結局こういうことです。

前提:売上のデータ数と利益のデータ数が等しい ※重要です

AVG([利益]) = SUM([利益]) / COUNT([利益])
AVG([売上]) = SUM([売上]) / COUNT([売上])
であることから、
AVG([利益])/AVG([売上]) = (SUM([利益]) / COUNT([利益])) / (SUM([売上]) / COUNT([売上]))
となり、データの性質上、COUNT([利益])=COUNT([売上])
なので
AVG([利益])/AVG([売上])=SUM([利益])/SUM([売上])
が成立する。

 これで、2つの計算式が等しい値を出力することがわかりました。

だから何なのか?

 2つの式が等しいことを証明しましたが、特にこの事実によってビジュアライゼーションの作成に役立つ情報が得られるわけではありません💦

 しかし、今回話題にしたようなデータソースからどのようにメジャーが計算されているかを理解することは今後の計算式作成に役立つのではないでしょうか?

終わりに

 他にもこのようなちょっとした話題を記事にできたらいいなと思っています。当然の事実じゃん!と思う人が100%ではないと信じてますし、今後の記事によって少しでも多角的にデータの理解に繋がる内容をお届けできればと思っております。

それではまた。


いいなと思ったら応援しよう!