Power BIにおけるコンテキストとは ~コンテキストの種類、活用~
はじめに
今回はある企業のマネージャーの予算達成計画作成にあたってのPowerBIの使い方をみてみたいとおもいます。
年間予算が決められ、受注をどのように組み立てようか、Royal Custmerや新規顧客の割合等計画と実績を比較しながら頭を悩ませています。
分析を楽にしたい一心から、今年になって、無料のPower BIを使い始めました。分析業務を行う1ユーザ視点となりますがご参考になれば幸いです。
コンテキストとは?
検索エンジンで”Power BI” “コンテキスト”で調べてみると、下のような検索結果が得られました。
コンテキストがたくさんヒットしていますが、果たして何のことやら?というのが最初の印象でした。検索結果から、Power BI Desktopで使用するDAXに関係が深そうです。
次に、MicrosoftのDocsにて同様に検索をかけてみます。そうすると「Power BI DesktopでのDAXの基本事項を適用するという項目がヒットしました。
(https://docs.microsoft.com/ja-jp/power-bi/transform-model/desktop-quickstart-learn-dax-basic)
ここを読み進めてみますと、コンテキストの解説が出てきました。この内容をサンプルデータを使用して、読み進め確認していきながら理解を進めていきます。
まずはDAXを理解していきます。「DAX(Data Analysis Expressions)」とは読み込んできたデータから新しい情報を取得するため、関数や演算式を纏めたものです。
分析作業はいわばDAXを用いてデータを加工、制御するということになります。
Excelでも”VLOOKUP”等利用してデータ加工や見える化を進めていくので同じようなことと推察されます。このデータに関する制御条件がコンテキストの解釈と理解しています。
コンテキストの種類
コンテキストには
・行コンテキスト
・フィルターコンテキスト
の2種類が存在します。
『行コンテキスト』
行コンテキストは、テーブル内のある行を識別するため、フィルターを適用している条件となります。フィルターはデータテーブル内で、対象になっているテーブルの各行の値に適用されることになります。つまり行コンテキストとは現在の行という解釈になります。 行コンテキストは、メジャーに適用されます。
下の例はある商品の売り上げデータをPower BIで取り込んだものとなります。年、四半期、月、日とSalesAmount,SalesTerritoryKey,CustomerKeyで構成されるデータテーブルを作成しています。このデータテーブルのすべての行(今現れている現在の行)に対する条件が行コンテキストになります。
下の例ではメジャーとして、年、四半期のスライサーを設定しており、2006年のQtr1を指定しています。データテーブルはスライサーにより指定された条件により、2006年のQtr1の条件が適用されたデータを指しているといえます。
『フィルターコンテキスト』
データを利用して、ある結果や値を計算して結果を得たい場合に、適用するフィルターのことを、フィルター コンテキストと考えることができます。
つまりフィルターコンテキストは行コンテキストに意図するデータ加工のフィルターをかけた状態といえます。フィルターをかける条件は1つであるとは限らず、複数の条件を設定する事が出来ます。分析を色々な切り口で実施したい場合、このフイルターコンテキストを利用することで、より詳細に行うことが出来るといえます。
DAXはこのフィルターコンテキストを利用して分析するために、条件を操るためのツールということが出来ます。
下の例ではある商品の販売に対して、マトリックスを利用して視覚化のために構成したものです。行に色(color)、列にsizeを配置して、値にSales Amountを置いています。
つまり、色、サイズでどのような売り上げ実績となっているか?、そこから何か今後の売り上げを増やすために、どのような対策が打てるかを分析しようと試みています。
ここにDAXを使用して Total Color Salesを計算させています。
Total Color Sales = CALCULATE([Total Sales],ALL(‘Product'[Color] ))
ここでは CALCURATE関数を使用しています。DAXの中でもCALCURATE関数はよく使う関数となります。
このDAXでは、Total Color Salesという名前で、マトリックスでは色別にSales Amountが示されていますが、これを無視する形ですべての色のSales Amountを返してくるように条件を与えています。
さらに分析を進めるため新たにSales Color ratioというDAXを作成していきます。
ここではDIVIDE関数を使用しています。
Sales Color ratio = DIVIDE(Sales[Total Color Sales],Sales[Total Sales])
これは先程のTotal Color SalesをTotal Salesで割り算をし、各Colorが全体のSales Amountの中でどのぐらいの割合を占めているかを計算しています。
これで、各サイズ毎で、色別での割合を示すことが出来ました。サイズ38の時に色別での分析では、単色でいうとBlack、Blue、Redが売れており、SilverやWhiteは売り上げ実績がありません。
Multi(複数色)は他の色とは比べ物にならないほどratioが高く、売り上げ増大施策としては,Multiに絞って生産数を増やすのが良いのか?と考えたいところです。しかし、サイズ40のSales Amountでは全く違う売り上げ実績となっており、Multiは全く売り上げ実績はなく、Black、Silver、Yellowが売れています。今後の売り上げ施策に相当悩みそうです。
以上、コンテキストについて説明をしてきました。Power BIを使用してデータの分析を進めるとき、DAXは非常に強力で有効な手段です。コンテキストの理解を深めて、より意味のある、効率的な分析を進めていきたいものです。
DAXの種類についてですが、これもMicrosoft Docsを検索しますと、DAX関数リファレンスがあります。ここに集計関数、日付と時刻関数、フィルター関数などを纏めて確認することが出来ます。(https://docs.microsoft.com/ja-jp/dax/dax-function-reference)
すべてを1度に覚える必要もないとは思いますが、よく使うDAXの構文はある程度覚えて使い慣れている方が効率的です。構文ついてはDAXを入れると自動で候補や構文が示され、間違いもわかるので使いやすいと思います。
さて冒頭申し上げたように、私のように1ユーザとして業務に使用する場合、大事なのは分析のストーリーであると思います。ある分析結果からデータの表す意味や、違うデータの切り口を想像し、次のストーリーを発想する。つまりはコンテキストを意識してDAXを使っていくという事になりますね。
<Power BIハンズオンセミナー>
弊社ではPower BIをはじめとするさまざまな無料オンラインセミナーを実施しています!
>>セミナー一覧はこちら
<Power BIの導入支援>
弊社ではPower BIの導入支援を行っています。ぜひお気軽にお問い合わせください。
>>Power BIの導入支援の詳細はこちら
<PowerBIの入門書を発売中!>
弊社ではPower BIの導入から基本的な使い方・活用方法の基礎などをわかりやすく解説した書籍も販売しています。
>>目次も公開中!書籍の詳細はこちら