Power BI- レポートを作るためのテーブルの分類(取り込んだデータをどう位置付けながら整理するか)
今日は立て続けにPower BIに慣れた人や、データベース系のプログラマーから見たら「何を当たり前なことを…」といわれそうな、ことばかり投稿している。
備忘録的な位置づけで書いているから、好きにしてもいいよね。
今回は様々なEUC(End User Computing。会社のみんなが自分用に更新し続けているExcel ファイルとか)や、社内データベース、外部情報を一手に引き受けて見やすく、自動更新をしてくれるPower BIだからこそ、
データを取り込みすぎて、取り込んだデータの位置づけがわけわからん、
となってしまう人向けに、
何を考えながらデータを取り込んで、
分類していけば、各テーブル同士の位置づけ・繋がりがこんがらがらないのかについて書く。
結論から言うと、データの種類は次の三種類になる。
1. マスターテーブル
2. データテーブル(ファクトテーブル)
3. フィルターテーブル
1. 「マスターテーブル」について
これは、カレンダーテーブルや、商品テーブル、勘定科目テーブルのようにMECEなテーブル。
例えば、日々の(カレンダーテーブル)、売上(商品テーブル)を帳簿に記録(勘定科目テーブル)した、仕訳データ(←データテーブル)があったとする。
この仕訳データは、毎日の取引を記録するためにあるわけだが、仕訳帳にどのように記録するか(商品名や商品コード)はあらかじめルールを決めておく必要がある。
そうしないと、例えば同じリンゴを販売したときに、Aさんは「りんご」と商品名を入力し、Bさんは「リンゴ」、また、別の日にAさんは「Apple」、Bさんは「apple」とそれぞれバラバラに仕訳入力したらどうなるだろうか。
出力した仕訳データを分析しようとした際に、果たして一体、「りんご(リンゴ、Apple、apple)」はいくら売れたのか、分からなくなる。
なので、商品を販売する前に、りんごが売れたときは、必ず「りんご」と入れるように、マスターテーブル(商品マスタ)を用意しておかなければならない。当然、同じものを別のものとコンピューターが認識しないように、りんごについては、「りんご」1種類しか、登録してはいけない。
カレンダーテーブルも同様に、仕訳データを作るための「元情報」の塊として、2020年3月28日(今日)は、後にも先にも1日しかないようなカレンダーとしてテーブルを用意しておかなければならない(これは説明すると逆に分かりづらくなる?要するに、マスターテーブルはデータテーブルがぐちゃぐちゃにならないために、漏れやダブリのない(MECEな)テーブルとして用意しておかなければならない)。
2. データテーブル(ファクトテーブル)について
既に上に書いたが、これが分析対象のテーブル(情報の塊)であり、マスターテーブルに乗っていない金額的、時間的な不確定な定量の実績情報(ファクト)を記録するテーブルである(もっとちゃんとした定義は調べればあると思うので、ちゃんとしたやつが希望の人は、Googleに聞いてください)。
たとえば、1.毎日の売上情報や、2.受注残の積み上がり情報、3.従業員のログイン・ログオフ時間の情報、などなど。
1. 売上情報は、カレンダーテーブルと商品マスタを引用して、固有の金額データを蓄積していく。
2. 受注残情報は、カレンダーテーブルと、取引先マスタ、商品マスタを引用して、固有の金額データを蓄積していく。
3. 従業員のログイン・ログオフ情報は、カレンダーテーブルと、従業員マスタ、PCのIDマスタを引用して、ログイン・ログオフ時間データを蓄積していく。
要するに、予め決まっていること(マスタ情報)の、変化を記録するテーブル。
3. フィルターテーブル
Power BIをやり始めてから、リレーションシップを作成しない独立したテーブルを意識するようになった。それがこれ。
例えば、
試算表をPower BI上に作成して、YTDとMTDを並列するのではなく、ボタンで切り替えられるようにしたいとか、
一つのグラフに対して、男女別、年齢別、所得水準別などのように、ボタンで即座に分析軸を切り替えられるようにしたいとか、ってときは、(Web検索すれば、そのようなPower BIのサンプルレポートは沢山公開されている。日本のサイトにはあまりないが。)フィルターテーブルを用意する。
これは、追って、SWITCH関数についての投稿でまた詳しく書く予定。
でわ。
この記事が気に入ったらサポートをしてみませんか?