今回はLOD表現と呼ばれるFIXED関数を解説します。
ややこしい雰囲気ありますが、意外とシンプルなのでご安心ください。
FIXED関数とは?
FIXED関数には2つの機能があります。
- 粒度を指定する
- 上記でした粒度で集計する
これだけです。
LOD表現とは?
FIXED関数はLOD表現、もしくはLOD関数と呼ばれています。
このLODとは「Level of Detail」の頭文字を取ったものです。
日本語的に言えば”粒度“の詳細でしょうか。
もっとわかりにくいですね。
同じだけど見え方が違う
下記テーブル(表)をみてください。
顧客名 | カテゴリ | サブカテゴリ |
---|---|---|
山田 | 家具 | 椅子 |
田中 | 家電 | コピー機 |
田中 | 家電 | 電話機 |
石田 | 事務用品 | クリップ |
よくあるテーブルです。
少し見方を変えてみましょう。
顧客名 | カテゴリ | 購入数 |
---|---|---|
山田 | 家電 | 1 |
田中 | 家電 | 2 |
石田 | 事務用品 | 1 |
田中の1行が減りました。
しかし、中身は一緒ですよね。
もう1つ見てみましょう。
顧客名 | サブカテゴリ | 購入数 |
---|---|---|
山田 | 椅子 | 1 |
田中 | コピー機 | 1 |
田中 | 電話機 | 1 |
石田 | クリップ | 1 |
田中の1行がまた戻りました。
中身は一緒です。
これが”粒度“です。
田中-家電は2ですが、田中-コピー機は1です。
カテゴリはサブカテゴリよりも守備範囲が広い、つまりカテゴリの粒はサブカテゴリと比較すると大きいと表現できます。
より日本語的に言えば”粗い“と表現できます。
粒度を指定して計算したい
田中は家電をいくつ買ったのかしりたい
↑みたいな要望が来たらどうしますか?
おそらくIF関数で条件を設定して計算しますよね。
もしくはフィルターで田中と家電に絞ります。
顧客名とサブカテゴリが表示された表内で田中が家電をいくつ買ったのかみたい
↑でしたらいかがでしょうか?
IF関数だとちょっと難しいですよね。
実際のテーブルにして考えてみると
顧客名 | サブカテゴリ | カテゴリ別購入数 |
---|---|---|
山田 | 椅子 | 1 |
田中 | コピー機 | 2 |
田中 | 電話機 | 2 |
石田 | クリップ | 1 |
こんなのどうやったら、、、、
前置きが長くなりましたが、これがFIXED関数なら簡単にできるってことです。
FIXED関数の書式
FIXED関数の書式
{FIXED([指定項目],[指定項目…..] : 集計式}
先ほどの例を計算式にしてみます。
{
FIXED [顧客名],[カテゴリ]:
COUNT([カテゴリ])
}
[顧客名],[カテゴリ]だけを抽出して、カテゴリの個数を数えています。
FIXEDは粒度が細かくなるほど意味がある
{
FIXED :
COUNT([サブカテゴリ])
}
↑だと常にサブカテゴリ総数が算出されます。
{
FIXED [カテゴリ] :
COUNT([サブカテゴリ])
}
↑だカテゴリ別のサブカテゴリ数が算出されます。
{
FIXED [サブカテゴリ] :
COUNT([サブカテゴリ])
}
↑だとサブカテゴリ別のサブカテゴリ数が算出されます。
粒度を並べると
- 全体
- カテゴリ
- サブカテゴリ
サブカテゴリが一番細かい粒度となります。
ではサブカテゴリ別で並べてみましょう。
次にカテゴリ別
最後は全体で
粒度が粗くなるにつれて、値が内包されていっています。
ディメンションフィルターやメジャーフィルターより優先される
FIXED関数はディメンションフィルターやメジャーフィルターより優先されます。
よく参考書に書いてあります。
どういうことを言っているかというと
顧客名 | サブカテゴリ | カテゴリ別購入数 |
---|---|---|
山田 | 椅子 | 1 |
田中 | コピー機 | 2 |
田中 | 電話機 | 2 |
石田 | クリップ | 1 |
↑の表でサブカテゴリのコピー機をフィルターで除外しても、カテゴリ別購入数は変わらないということです。
顧客名 | サブカテゴリ | カテゴリ別購入数 |
---|---|---|
山田 | 椅子 | 1 |
田中 | 電話機 | 2 |
石田 | クリップ | 1 |
ただし、カテゴリの家電をフィルターで除外したら変わります。
というか、その行がなくなります。
顧客名 | サブカテゴリ | カテゴリ別購入数 |
---|---|---|
山田 | 椅子 | 1 |
石田 | クリップ | 1 |
見えないけど、どこかで2を計算してくれてはいます。
おわり
もっと良い使い方、おかしい点、アドバイスなどあれば気軽にコメントください!
読んでくれてありがとうございます!!
Comment