ブログ

Power BIにおけるコンテキストとは ~コンテキストの種類、活用~

はじめに

今回はある企業のマネージャーの予算達成計画作成にあたってのPowerBIの使い方をみてみたいとおもいます。
年間予算が決められ、受注をどのように組み立てようか、Royal Custmerや新規顧客の割合等計画と実績を比較しながら頭を悩ませています。

分析を楽にしたい一心から、今年になって、無料のPowerBIを使い始めました。分析業務を行う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種類が存在します。
『行コンテキスト』
行コンテキストは、テーブル内のある行を識別するため、フィルターを適用している条件となります。フィルターはデータテーブル内で、対象になっているテーブルの各行の値に適用されることになります。つまり行コンテキストとは現在の行という解釈になります。 行コンテキストは、メジャーに適用されます。
下の例はある商品の売り上げデータをPowerBIで取り込んだものとなります。年、四半期、月、日と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が全体のSalesAmountの中でどのぐらいの割合を占めているかを計算しています。

これで、各サイズ毎で、色別での割合を示すことが出来ました。サイズ38の時に色別での分析では、単色でいうとBlack、Blue、Redが売れており、SilverやWhiteは売り上げ実績がありません。
Multi(複数色)は他の色とは比べ物にならないほどratioが高く、売り上げ増大施策としては,Multiに絞って生産数を増やすのが良いのか?と考えたいところです。しかし、サイズ40のSales Amountでは全く違う売り上げ実績となっており、Multiは全く売り上げ実績はなく、Black、Silver、Yellowが売れています。
今後の売り上げ施策に相当悩みそうです。

以上、コンテキストについて説明をしてきました。PowerBIを使用してデータの分析を進めるとき、DAXは非常に強力で有効な手段です。コンテキストの理解を深めて、より意味のある、効率的な分析を進めていきたいものです。
DAXの種類についてですが、これも Microsoft Docsを検索しますと、DAX関数リファレンスがあります。ここに集計関数、日付と時刻関数、フィルター関数などを纏めて確認することが出来ます。(https://docs.microsoft.com/ja-jp/dax/dax-function-reference
すべてを1度に覚える必要もないとは思いますが、よく使うDAXの構文はある程度覚えて使い慣れている方が効率的です。構文ついてはDAXを入れると自動で候補や構文が示され、間違いもわかるので使いやすいと思います。

さて冒頭申し上げたように、私のように1ユーザとして業務に使用する場合、大事なのは分析のストーリーであると思います。ある分析結果からデータの表す意味や、違うデータの切り口を想像し、次のストーリーを発想する。つまりはコンテキストを意識してDAXを使っていくという事になりますね。

CONTACT
お問い合わせ

ご相談やご依頼、病院マスタなどについてのお問い合わせはこちらのお問い合わせフォームから。

サービスなどについてのお問い合わせ 病院マスタについてのお問い合わせ

メールお問い合わせ