Power BI初心者のための10の便利なデータ分析式(DAX)関数

はじめに

ビジネスインテリジェンス(BI)の旅では、多くのドラッグアンドドロップツールに取り組 しかし、MicrosoftのPower BIのスイスアーミーナイフの性質に一致するものはありません。 数値の計算、データの分析、パターンの可視化の作業が本当に簡素化されます。

これは、業界で最高の”ドラッグアンドドロップ”ツールの一つです。 分析したいフィールドを選択し、Power BIダッシュボードにドロップすると、出来上がりです! 洞察はあなたの目の前にあります。

しかし、分析をより深く掘り下げたい場合はどうすればよいですか? 特定の変数をカスタマイズしたり、新しい変数を生成したりする場合はどうすればよいですか? ただ、迅速なドラッグアンドドロップをやっても、私たちの問題を解決しません。 ここで、Power BIのデータ分析式(DAX)のパワーが発揮されます。

Power BI DAX

これは、ビジネスインテリジェンスを志望するだけでなく、データサイエンスの専門家のために学ぶための便利なツールです。 それは私たちがそうでなければコードをかき回すのに費やすことになる時間のトンを節約します。

この記事では、まずBIとは何か、BI業界の専門家の典型的な役割を理解します。 次に、強力なMicrosoft Power BIツールを紹介し、Power BIで使用できる10の非常に便利なデータ分析式(DAX)関数について詳しく説明します。

目次

  • ビジネスインテリジェンス(BI)の概要
  • ビジネスインテリジェンスプロフェッショナルの役割
  • Power BIとは何ですか?
  • データ分析式(DAX):それらは何であり、なぜ必要なのですか?
  • Power BIでのDAX関数の実装

ビジネスインテリジェンスの概要(BI)

ビジネスインテリジェンスには幅広い範囲がありますが、ビジネス指標を追跡して確認するプロセスとして定義できます。

これを理解するための例を見てみましょう。

私たちは、国のさまざまな部分で私たちの顧客に製品を提供する運送会社を運営していると考えてください。 あらゆるビジネスと同じように、私達は私達の顧客の経験を改善したいと思います。 顧客満足度を測定するために測定できるいくつかの指標があります。:

  • 製品が配送された速度
  • 製品が破損しているかどうか
  • 正しい製品が配送されましたか? など。

このデータは明快なレポートの形で処理され、表示され、洞察を家に持ち帰ることが容易になります。 したがって、配送率のチャートで予想よりも低い評価が表示された場合、根本的な原因を見つけて配送速度を向上させることができます。

ビジネスインテリジェンスの専門家の役割

さて、ビジネスインテリジェンスの専門家は何をしていますか? 私はこれが上記のシナリオを通って行く間あなたの心を交差させたにちがいないことを確かめる。 以下は、典型的なBIの人が行ういくつかの一般的なタスクです:

  • リレーショナル/NoSQLデータベースからデータを取得するための書き込み(SQL)クエリまたはコネクタ
  • データを処理し、ビジネスメトリックを計算するための書き込み(SQL)クエリ
  • ビジネスメトリックを視覚化するためのインタラクティブなウィジェットを備えたグラフを作成するためのコードを設計
  • チャートからダッシュボードを作成し、エンドユーザーが使用できるようにデプロイする

biの専門家になるために必要なスキルセットは、プロジェクトごとに異なります。 しかし、大まかに言えば、Tableau、PowerBI、QlikなどのBIツールに関する確かな知識と、Python、R、SQLなどのプログラミング言語での経験が必要です。 ドメインと構造化された思考の知識も求められています。

Power BIは、最も人気のある強力なBIツールの1つです。 それはこの記事の私達の焦点である。 私たちがそこに着く前に、ここでは典型的なビジネスインテリジェンスアーキテクチャの素晴ら:

ビジネスインテリジェンスアーキテクチャのサンプル

Power BIとは何ですか?

Power BIは、Microsoftによって開発された人気のある非常に強力なビジネスインテリジェンスツールです。 それは異なる味と供物を持っています。 最も基本的なバージョンは無料ですが、それは簡単に中規模のビジネスインテリジェンス演習を実行する能力を持っています。

広義には、Power BIはクラウドベースのビジネス分析ソリューションスイートであり、サイロ間の膨大な量のデータをアクセス可能な情報に変換するために必要なツールを提供します。 それは一貫してGartner BI Magic Quadrantにランクされています。

Power BIは、汎用性、対話性、審美的なデザイン、データベースへの広範な接続性、低労力のダッシュボードの作成の容易さで人気があります。 また、Azure、Cortana、SQL Server、Azure Active Directory、Azure Blob Storageなど、Microsoftエコシステムの他のツールからのサポートも活用しています。

ここでは、Power BIが行うことができますクールなことのカップルがあります:

  • 製造装置の健全性を監視するための実時間警報そして視覚化。 これは、IoT Azure Hub、Azure Data Factory、Cognos DBを介してIoTセンサーデータを渡し、Windows voice assistant Cortana

データ分析式(DAX)を使用して音声指示を与えることにより、power BI

  • で分析します。

    CSVファイルまたはデータベースからPower BIにデータを読み取ることができます。 また、Power BIでテーブルをマージすることもできます。 多くの場合、プロットに必要なデータはテーブルの列ですぐに利用できます(ただし、必ずしもそうではありません)。

    ダッシュボードを改善するためにデータを変更または変更する必要がある状況を考えてみましょう。 必要なカスタム変更がPower BIですぐには利用できないとします。 じゃあどうする? この種の変更とデータ分析をどのように実行できますか?

    答えはDAX(データ分析式の略)です。 DAXは、生データの中に隠された意味のある情報をもたらすために使用されます。 簡単に言えば、DAXはデータ操作に使用されます。

    DAXを使用するためには、一定のルールに従う必要があります。 Excelの関数に精通している場合は、これらのルールをすぐに理解できます。 DAXはその高度な形式にすぎません。

    DAXを書く場所は二つあります:

    • 計算された列
    • 計算されたメジャー

    これらの両方が何を意味するのか見てみましょう:

    • 計算列は、ほとんどのデータセットに表示される通常の列と非常によく似ています。 違いは、計算された列は、2つ以上の列を使用するか、異なるテーブルの列を使用して計算された結果であることです。 これらは、行単位の計算を実行する場合に使用できます
    • 計算されたメジャーは、一方で、計算列に似ています。 しかし、それらは物理メモリを占有せず、その結果を列の形で見ることはできません。 通常、これは、行のグループに対して動的計算を実行する場合や、データをグループ化する場合に使用します。

    Power BIでのDAX関数の実装

    このセクションでは、いくつかの便利なDAXコマンドとその関数について説明します。 “サンプルスーパーストア”データセットを使用します。 あなたはここでデータセットをダウンロードして、同様に自分で実験を開始することができます!

    データセットには、’Orders’、’Returns’、’Users’の三つのテーブルが含まれています。 先に進み、サンプルのスーパーストアデータセットExcelファイルをPower BIに読み込みます。

    Power BIを開き、”ホーム”タブで”データの取得”を探します。 Excelを選択し、ローカルマシンに存在するデータセットファイルを参照します。 ファイル全体をBIウィンドウにロードします。

    さあ、行こう!ルックアップ関数は、Microsoft ExcelのVlookupに非常に似ています。

    データセットの3番目のテーブルには、地域ごとのすべての管理者の詳細が含まれています。 今ここに参照が手に入るところである。 ‘Users’テーブルの’Manager’列のルックアップを、’orders’テーブルの対応する’Region’列に対して実行できます。

    では、Power BIで検索を実行するにはどうすればよいですか? 私たちが覚えておく必要がある二つのことがあります:

    1. ルックアップを実行するには、共通の列が必要です
    2. また、2つの異なるテーブルから選択された一致する列の少なくとも1つに一意の値が必要です。 Lookupの基本的な構文は次のとおりです:
    LOOKUPVALUE(Result Column Name, Search Column Name, Search Column value)

    データセット変数を使用してこの構文を置く:

    Manager = LOOKUPVALUE(Users,Users,Orders)

    FILTER()&CALCULATE()

    以下に表示されるDAXは、group by関数に似ています。 フィルタに基づいて列を動的に集約します。 これは、Power BIダッシュボードでテーブルを作成していて、1つの列のみをフィルター処理する必要がある場合に便利です(残りの列はフィルターの影響を受け

    このDAXは、テーブルで使用されるすべての列が独自のフィルタを持つことができる場合に便利です。 これがどのように機能するかを理解するための例を見てみましょう。

    地域別の売上高の合計を計算したいとします。 そのため、最初に、filter関数はregion列をnorth、south、east、westに分割します。 次に、分離に応じて売上の合計を計算します。 特定の領域には任意の数の行を含めることができるため、ここではメジャーを使用しています。

    ここでは、フィルターのキーとして機能する変数regを宣言しています。 キーワードVARを使用して変数を宣言できます。 RETURNキーワードは、計算の結果(この例では売上の合計)を示します。 計算されたDAXから得られる結果は次のとおりです:

    ネストされたIF条件

    データセットのordersテーブルを考えてみましょう。 ‘Order Priority’列の下には5つの値があります。 その列に存在する元の値の代わりに整数値が必要であると仮定しましょう。 ネストされたIF文はここで私たちの友人です:

    Nested IF = IF(Orders ="Critical", 5, IF(Orders ="High", 4, IF(Orders = "Medium", 3, IF(Orders = "Low", 2, IF(Orders = "Not Specified", 1)))))

    条件付き書式

    条件付き書式は、Microsoft Excelの最も一般的に使用される機能の一つです。 そして、Power BI内でもそれを活用することができます!

    条件付き書式は、これまでに使用したことがない人にとっては、別の列の条件に基づいて列のフォントの色を変更する機能です。 これは、条件に従って新しい列を作成し、その列を使用して条件付き書式設定タブでルールを設定することで実行できます。

    サンプルのスーパーストアデータセットの例でこれを試してみましょう。

    ordersテーブルの”Order priority”列に表示される値の色を変更したいと思います。 たとえば、すべての’Critical’値は赤色で、すべての’High’値は緑色などでなければなりません。

    条件が既に指定されているため、上記で作成したネストされたIF列を使用できます。 条件付き書式タブでルールを設定する–上記で作成された列の値が1の場合、値が2の場合はフォントの色が赤になり、オレンジ色になります。

    Power BIでそれを行う方法を示す画像を次に示します:

    区切り文字

    に基づいて文字列を分割するPower BIで使用できる別の一般的なExcel関数:

    customer_split_1 = PATHITEM(SUBSTITUTE(Orders," ","|"),1)

    上記のPATHITEM関数は、結果の文字列を返します。 SUBSTITUTE関数は、指定された区切り文字を特定の文字に置き換え、指定された値に基づいて対応する単語をフェッチします。

    たとえば、’Customer Name’フィールドで分割を実行しましょう。 ここでは、””スペースが区切り文字になり、パイプライン”|”に置き換えられました。 顧客の名前だけが必要なので、1を指定しました。 この値を変更して、どのような結果が得られるかを確認できます。

    次に、このような3つの分割を実行し、それぞれcustomer_split_1、customer_split_2、customer_split_3という名前を付けましょう。

    単語から特定の文字を取得する

    単語から特定の文字だけを抽出したい場合はどうすればよいですか? それは難しいように聞こえますが、実際にはPower BIでは非常に簡単です:

    customer_initial_1 = LEFT(Orders,1)

    私たちはたった1行のコードでそれをやりました!

    特定の顧客の名前が「Helen Stein」で、分割が2つの部分に分割されているとしましょう。 上記のDAXを使用して、最初の分割単語(Helen)から最初の文字を取得します。 LEFT関数は、文字列の先頭に位置することによって文字数を返します。 1の代わりに2を与えると、上記のDAXは”H”の代わりに”He”を返します。

    文字列を連結する

    私たちはしばしば、二つの単語を一緒に結合する必要がある状況で自分自身を見つけます。 これがPower BIでどのように機能するかを確認するために、データに複数のイニシャルがあると仮定しましょう。

    ビジュアライゼーションでは、完全な名前ではなく、顧客のイニシャルのみを指定する必要があります。 これはテーブルを端正、密集した保つのを助ける:

    customer_initials = CONCATENATE(Orders,CONCATENATE(Orders,Orders))

    concatenate関数は、文字列を結合します。 ここでは、3つの列の連結を実行しました:

    WEEKDAY()

    WEEKDAY関数は、現在の日を示す整数を返します。 のは、いくつかの注文が派遣された日を把握してみましょう:

    weekday = WEEKDAY(Orders,2)

    上に表示された整数は、開始日を指定します:

    • 1 – 日曜日=1から開始し、土曜日に終了します= 7
    • 2 – 月曜日=1から開始し、日曜日に終了します= 7
    • 3 – 月曜日=0から開始し、日曜日に終了します= 6

    DATE Split Up

    特定のプロジェクトの日付をピボット解除する必要がある場合があります。 これは、DaxとPower BIのクエリエディターの助けを借りて行うことができます。

    これで、注文日と出荷日の2つの列があります。 私たちは、2つの間隔の間にある日付を削除したいと思います。 注文日を01-01-2015、出荷日を03-01-2015としましょう。 それらの間には3日間の違いがあるため、この行は3回表示されます。

    Power BIのクエリエディターを使用してこれを行うことができます。 “列の追加”タブで”カスタム列”オプションを選択します。 以下のウィンドウがポップアップし、列名を追加してDAXクエリを使用できます:

    次に、データセットの日付列を見つけます。 日付列ヘッダー内の小さなボックスをクリックし、”新しい行に展開”オプションを選択します:

    値が整数の形でどのように表示されているかに注意してください。 次に、列を右クリックし、データ型を「日付」形式に変更します:

    日付

    に基づく複雑な集計日付データの操作は非常に複雑な課題です。 ちょうど別の日、月などを分割するよりも、それに多くがあります。

    このセクションでは、日付に基づく複雑な集計の例について説明します。 たとえば、次の2週間または過去2週間にリストされている時間の合計数は何ですか?

    このセクションのデータセットを切り替えます。 “Weekcal”と呼ばれる新しいデータセットは、Forecastからダウンロードできます。 このデータセットは、チームの時間配分とFloatと呼ばれる計画ツールをモデル化しています。 Floatは、タスクを割り当て、チームメンバーの推定時間を計算するのに役立ちます。

    Floatには注意すべき注意点が1つあります。 Floatツールでは、週は常に月曜日から始まります。 たとえば、木曜日から次の週に割り当てられた時間を計算する場合は、今週の木曜日から次の木曜日までではなく、最新の月曜日から金曜日までに割

    今、データセットには以下の機能が含まれています:

    • 開始日-タスクの開始日
    • 終了日–タスクの終了日
    • 時間/日–一日あたりのタスクに費やされた時間数
    • タスク名–タスクの名前

    来週に割り当てられた時間数を見つけることに興味があるとしましょう。 以下のロジックを使用してこれを行うことができます:

    FORECAST_1 WEEK = if (Forecast1>=TODAY()-(WEEKDAY(TODAY(),2)-1) && Forecast1<=TODAY()-(WEEKDAY(TODAY(),2)-1)+7,DATEDIFF(Forecast1,Forecast1,DAY)+1 * Forecast1,IF(Forecast1 > TODAY()-(WEEKDAY(TODAY(),2)-1) ,0,IF(Forecast1<=TODAY()-(WEEKDAY(TODAY(),2)-1) && Forecast1<=TODAY()-(WEEKDAY(TODAY(),2)-1)+7 && Forecast1>=TODAY()-(WEEKDAY(TODAY(),2)-1),DATEDIFF(TODAY()-(WEEKDAY(TODAY(),2)-1),Forecast1,DAY)* Forecast1,IF(Forecast1>=TODAY()-(WEEKDAY(TODAY(),2)-1) && Forecast1 >=TODAY()-(WEEKDAY(TODAY(),2)-1)+7,DATEDIFF(Forecast1,TODAY()-(WEEKDAY(TODAY(),2)-1)+7,DAY)* Forecast1,IF(Forecast1<=TODAY()-(WEEKDAY(TODAY(),2)-1)&& Forecast1>=TODAY()-(WEEKDAY(TODAY(),2)-1)+7,DATEDIFF(TODAY()-(WEEKDAY(TODAY(),2)-1),TODAY()-(WEEKDAY(TODAY(),2)-1)+7,DAY) * Forecast1,BLANK())))))
    • TODAY()–(WEEKDAY(TODAY(),2)–1関数は、週の現在の月曜日を返します
    • DATEDIFF関数は、二つの日付の差を返します

    次の週の各タスクの推定時間を確認するには、以下の表を:

    エンドノート

    Power BIは、さまざまなデータソースを使用して迅速なダッシュボードを作成するための強力で使いやすいツールです。 DAXクエリは、データのマッピング、新しい変数とビジネス指標の作成、およびデータの操作に使用されます。 この記事では、あなたのDAXの旅を開始するための簡単かつ迅速なガイドを提供します。

    また、Power BIの公式Microsoftチュートリアルをチェックする必要があります–素晴らしいリソース!

    この記事が役に立つことを願っています。 私たちはあなたのフィードバックやコメントを聞くことを楽しみにしています。 幸せなDashboarding、または我々は幸せな大興を言う必要があります!

    著者について

    Kirthi Tej Yendloori

    Kirthi TejはIndium softwareのデータアナリストです。 彼はデータの可視化の経験の年を持っており、機械学習に非常に興味を持っています。 彼は旅行が大好きです。

  • You might also like

    コメントを残す

    メールアドレスが公開されることはありません。