注: この記事は、SharePoint Online で PowerApps、Microsoft Flow、Power BI を使用するチュートリアル シリーズの一部です。 シリーズ全般に関することや、関連するファイルのダウンロードの詳細については、シリーズの概要に関する記事をご覧ください。

このタスクでは、2 つの SharePoint リストをベースに Power BI レポートを作成します。 リストのデータを Power BI Desktop に取り込み、少し修正を加えたり、基本的なデータ モデリングを行ったりします。その後、データの分析に役立つ視覚エフェクトを作成します。

ヒント: このシナリオのダウンロード パッケージには、このレポートの完成版 (project-analysis.pbix) が含まれています。

Power BI Desktop の復習

レポートの作成に進む前に、Power BI Desktop について復習しましょう。 Power BI Desktop は多くの機能を備えた強力なツールであるため、このタスクで使用する領域の概要に的をしぼって説明します。 Power BI Desktop には、レポート ビュー、データ ビュー、リレーションシップ ビューという 3 つの主な作業領域または ビュー があります。 Power BI Desktop には、別のウィンドウで開くクエリ エディターも含まれています。

次の画面には、Power BI Desktop の左側に 3 つのビュー アイコンが、上からレポートデータリレーションシップの順に表示されています。 左側の黄色のバーは、現在のビューを示しています。下の画像には、レポート ビューが表示されています。 ビューを変更するには、これら 3 つのアイコンのいずれかを選択します。

Power BI Desktop のビュー

レポート ビューには、5 つの主な領域があります。

  1. リボン。レポートや視覚エフェクトに関連する一般的なタスクが表示されます。

  2. レポート ビューまたはキャンバス。ここに視覚エフェクトを作成し、配置します。

  3. 画面下部の [ページ] タブ領域。レポート ページを選択したり追加したりします。

  4. [視覚化] ウィンドウ。ここで視覚エフェクトの変更、色や軸のカスタマイズ、フィルターの適用、フィールドのドラッグなどを行います。

  5. [フィールド] ウィンドウ。レポート ビューや [視覚化] ウィンドウの [フィルター] 領域に、クエリの要素やフィルターをドラッグできます。

Power BI Desktop のタブ、ビュー、ウィンドウ

データ ビューには、3 つの主な領域があります。

  1. リボン。下の画像では [モデリング] タブが選択されています。 このタブでは、計算テーブルや列を作成し、データ モデルにその他の変更を加えます。

  2. 中央のウィンドウ。選択したテーブルのデータを表示します。

  3. [フィールド] ウィンドウ。レポートのフィールドの表示方法を管理します。

Power BI Desktop のデータ ビュー

リレーションシップ ビューはこのタスクでは使用しませんが、後ほど Power BI Desktop にリスト データを取り込んだ後で確認できます。

クエリ エディターでは、クエリを作成してデータを変換し、絞り込んだデータ モデルを Power BI Desktop に読み込みます。 クエリ エディターには、4 つの主な領域があります。

  1. リボン。取り込んだデータを整形したり変換したりするためのさまざまなオプションがあります。

  2. 左側のウィンドウ。クエリが一覧表示され、クエリを選択、表示、整形できます。

  3. 中央のウィンドウ。選択したクエリのデータが表示され、データを整形できます。

  4. [クエリの設定] ウィンドウ。クエリのプロパティと、適用したデータの変換ステップが一覧表示されます。

Power BI Desktop のクエリ エディター

手順 1: Power BI Desktop にデータを取り込む

この手順では、まず 2 つのリストに接続します。 次に、データ分析に必要のない列を削除してデータをクリーンアップします。 また、計算が正しく動作するように、残りの列のデータ型をいくつか変更します。 Power BI Desktop でデータを取得したりクリーニングしたりする方法の詳細については、ガイド学習コースの「データの取得」セクションをご覧ください。

SharePoint リストに接続する

  1. Power BI Desktop の [ホーム] タブで、[データを取得][さらに表示…] の順にクリックまたはタップします。

    データを取得

  2. [データを取得] ダイアログ ボックスで、[SharePoint Online リスト][接続] の順にクリックまたはタップします。

    SharePoint リストへの接続

  3. SharePoint サイトの URL を入力し、[OK] をクリックまたはタップします。

    SharePoint リストの URL

  4. 次のダイアログ ボックスが表示された場合は、正しい資格情報でサインインしていることを確認し、[接続] をクリックまたはタップします。

    SharePoint リストの資格情報

  5. Project DetailsProject Requests を選択し、[編集] をクリックまたはタップします。

    SharePoint リストの選択

    リストがクエリ エディターでテーブルとして表示されます。

    クエリ エディターのテーブル

不要な列をテーブルから削除する

  1. 左側のナビゲーション ウィンドウで、Project Details をクリックまたはタップします。

  2. 中央のウィンドウで、[FileSystemObjectType] 列を選択し、[列の削除] をクリックまたはタップします。

    列の削除

  3. [Id] 列の後ろにある 2 つの列 ([ServerRedirectedEmbedURL][ContentTypeId]) を削除します。 ヒント: Shift キーを使用して両方の列を選択し、[列の削除] をクリックまたはタップします。

  4. [PMAssigned] 列の右側にあるすべての列 (合計 22 列) を削除します。 テーブルは次の画像のようになります。

    クエリ エディターの Project Details テーブル

  5. Project Details でのプロセスを繰り返し、[Approved] 列の右側にあるすべての列 (合計 22 列) を削除します。 テーブルは次の画像のようになります。

     クエリ エディターの Project Requests テーブル

Project Details 列のデータ型を変更する

  1. [ProjectedDays] 列を選択し、[データ型: すべて][整数] の順にクリックまたはタップします。

    データ型を整数に変更

  2. 前述の手順を [ActualDays] 列でも繰り返します。

  3. [ApprovedDate] 列を選択し、[データ型: すべて][日付] の順にクリックまたはタップします。

     データ型を日付に変更

  4. 前述の手順を [ProjectedStartDate] 列と [ProjectedEndDate] 列でも繰り返します。

Project Requests 列のデータ型を変更する

  1. [EstimatedDays] 列を選択し、[データ型: すべて][整数] の順にクリックまたはタップします。

  2. [RequestDate] 列を選択し、[データ型: すべて][日付] の順にクリックまたはタップします。

変更を適用して保存する

  1. [ホーム] タブで [閉じて適用] をクリックしてクエリ エディターを閉じ、Power BI Desktop のメイン ウィンドウに戻ります。

    変更を閉じて適用

  2. [ファイル][保存] の順にクリックまたはタップし、“project-analysis.pbix” というファイル名で保存します。

手順 2: データ モデルを改善する

SharePoint リストから Power BI Desktop へのデータの取り込みが完了したので、次にデータ モデリングを行います。 データ モデリングには時間がかかる場合がありますが、Power BI Desktop のリスト データからより多くの情報を得られる興味深い方法を簡単にご紹介します。

  • 2 つのテーブルの相互関係を変更する

  • 日付テーブルを追加して平日に基づいて計算できるようにする

  • 計算列を追加してプロジェクトのマイルストーン間の期間を計算する

  • メジャーを追加してプロジェクトの予測日数と実績日数の差異を計算する

この手順が完了すれば、モデルの機能強化を活用する視覚エフェクトを作成できます。 Power BI Desktop でのデータのモデリングについて詳しくは、ガイド学習コースの「モデリング」セクションをご覧ください。

テーブル間のリレーションシップを変更する

Power BI Desktop でリストを取り込むと、両方のテーブルの [Id] 列に基づいてこのリスト間のリレーションシップが作成されます。 正確には、Project Requests テーブルの [Id] 列と、Project Details テーブルの [RequestId] 列とのリレーションシップです。 それを修正します。

  1. データ ビュー アイコンをクリックまたはタップします。

    データ ビュー

  2. [モデリング] タブで、[リレーションシップの管理] をクリックまたはタップします。 データ モデリングの手順では、最後までデータ ビューのこのタブ上で作業を行います。

    リレーションシップの管理

  3. 既存のリレーションシップが選択されていることを確認し、[削除] をクリックまたはタップします。その後、確認のためにもう一度 [削除] をクリックまたはタップします。

    リレーションシップの削除

  4. [新規] をクリックして、別のリレーションシップを作成します。

  5. [リレーションシップの作成] ダイアログ ボックスで次の作業を行います。

    1. 最初のテーブルで、[Project Requests] を選択して [Id] 列を選択します。
    2. 2 つ目のテーブルで、[Project Details] を選択して [RequestId] 列を選択します。
    3. 画面は次の画像のように表示されます。 準備ができたら [OK] をクリックまたはタップします。

    リレーションシップの削除

日付テーブルを追加して、日付ベースでの計算を簡単に行えるようにする

  1. [新しいテーブル] をクリックまたはタップします。

    新しいテーブル

  2. 次の数式を数式バーに入力します: Dates = CALENDARAUTO()

    Dates = CALENDARAUTO() と入力された数式バー

    この数式は、日付列 1 つを含む "Dates" というテーブルを作成します。 このテーブルには、ご使用の他のテーブルのすべての日付が含まれています。また、日付が追加された場合 (データが更新された場合) は、自動で更新されます。

    この数式とこのセクションのその他の数式では、Power BI や他のテクノロジで使用されている数式言語の Data Analysis Expressions (DAX) を使用します。 詳細については、「Power BI Desktop における DAX の基本事項」をご覧ください。

  3. Enter キーを押して、[Dates] テーブルを作成します。

    [Dates] テーブル

[Dates] テーブルに計算列を追加する

  1. [Dates] テーブルを表示した状態で、[新しい列] をクリックまたはタップします。

    新しい列

  2. 次の数式を数式バーに入力します: IsWeekDay = SWITCH(WEEKDAY(Dates[Date]), 1,0,7,0,1)

    この数式は、[Date] 列の日付が平日かどうかを決定します。 日付が平日なら [IsWeekDay] 列の値が 1 になり、そうでない場合は 0 になります。

  3. Enter キーを押して、[Dates] テーブルに [IsWeekDay] 列を追加します。

    [IsWeekDay] 列の追加

Project Details テーブルに計算列を追加する

  1. 右側のウィンドウで、Project Details テーブル、[新しい列] の順にクリックまたはタップします。

    新しい列

  2. 次の数式を数式バーに入力します。

    ApprovedStartDiff = CALCULATE(SUM(Dates[IsWeekday]),
    
       DATESBETWEEN(Dates[Date], 
    
          'Project Details'[ApprovedDate],
    
          'Project Details'[ProjectedStartDate] 
    
      )
    
    )
    

    この数式は、プロジェクトが承認された日からプロジェクトの開始予定日までの日数を計算します。 [Dates] テーブルの [IsWeekday] 列を使用し、平日のみをカウントします。

  3. Enter キーを押して、Project Details テーブルに [ApprovedStartDiff] 列を追加します。

    [ApprovedStartDiff] 列の追加

Project Requests テーブルに計算列を追加する

  1. 右側のウィンドウで、[Project Requests] テーブル、[新しい列] の順にクリックまたはタップします。

    新しい列

  2. 次の数式を数式バーに入力します。

    RequestDateAge = CALCULATE(SUM(Dates[IsWeekday]),
    
       DATESBETWEEN(Dates[Date], 
    
          'Project Requests'[RequestDate],
    
          NOW() 
    
       )
    
    )
    

    この数式は、プロジェクトが要求された日から、本日の日付 (NOW()) までの日数を計算します。 先ほど同様、この数式は平日のみをカウントします。 この列は、保留期間が最も長いプロジェクトの検索に使用します。

  3. Enter キーを押して、[Project Requests] テーブルに [RequestDateAge] 列を追加します。

    [RequestDateAge] 列の追加

Project Details テーブルにメジャーを追加する

  1. 右側のウィンドウで、Project Details テーブル、[新しいメジャー] の順にクリックまたはタップします。

    新しいメジャー

  2. 次の数式を数式バーに入力します。

    VarProjectedActual = DIVIDE(
    
        SUM('Project Details'[ActualDays]) - SUM('Project Details'[ProjectedDays]), 
    
        SUM('Project Details'[ProjectedDays])
    
    )
    

    この数式は、プロジェクトの実績日数と予測日数との差異を計算します。 この数式を計算列ではなくメジャーとして追加することで、レポートでのデータのフィルター方法や集計方法に関わらず、正しい結果を返すことができます。

  3. Enter キーを押して、Project Details テーブルに [VarProjectedActual] メジャーを追加します。

    [VarProjectedActual] メジャーの追加

Project Requests テーブルにメジャーを追加する

  1. 右側のウィンドウで、[Project Requests] テーブル、[新しいメジャー] の順にクリックまたはタップします。

    新しいメジャー

  2. 次の数式を数式バーに入力します。

    MaxDaysPending = MAXX(
    
        FILTER('Project Requests', 'Project Requests'[Approved]="Pending"), 
    
        'Project Requests'[RequestDateAge]
    
    )
    

    この数式は、先ほど定義した計算列に基づいて、保留期間が最も長いプロジェクトを検索します。

  3. Enter キーを押して、[Project Requests] テーブルに [MaxDaysPending] メジャーを追加します。

    [MaxDaysPending] メジャーの追加

手順 3: レポートの視覚エフェクトを作成する

データの分析について考えるときに、多くの人が思い浮かべる段階まで到達しました。視覚エフェクトを作成することで、データのパターンを見つけることができます。 この手順では、4 つの視覚エフェクトを作成します。

  • プロジェクトの予測日数と実績日数を示す縦棒グラフ

  • 各プロジェクトの差異を示す縦棒グラフ

  • 保留期間が最も長いプロジェクトを示すカード

  • プロジェクトの承認日から開始予定日までの期間を示すテーブル

Power BI Desktop でこれらのレポートの視覚エフェクトを作成してから、Power BI サービスにデータとレポートを発行します。これにより、ダッシュボードの作成と共有が可能になります。 Power BI Desktop でのレポートの作成について詳しくは、ガイド学習コースの「視覚エフェクト」セクションをご覧ください。

予測と実績を示す棒グラフを作成する

  1. レポート ビュー アイコンをクリックまたはタップします。 Power BI Desktop での残りの作業では、最後までこのビューを使用します。

    レポート ビュー

  2. 右側の [視覚化] ウィンドウで、[集合縦棒グラフ] をクリックまたはタップします。

    視覚エフェクト - 集合縦棒グラフ

  3. [フィールド] ウィンドウの [Project Details] から [PMAssigned][Title] をドラッグして、[視覚化] ウィンドウの [軸] にドロップします。

    [視覚化] ウィンドウの [軸]

  4. [フィールド] ウィンドウの [Project Details] から [ActualDays][ProjectedDays] をドラッグして、[視覚化] ウィンドウの [値] にドロップします。

    [視覚化] ウィンドウの [値]

  5. 視覚エフェクトは次の画像のように表示されます。

    [PMAssigned] ごとの [ProjectedDays] と [ActualDays]

  6. [フィールド] ウィンドウの [Project Details] から [Status] をドラッグし、[視覚化] ウィンドウの [フィルター] 領域にドロップしてから、[完了] チェック ボックスをオンにします。

    [Status] 列によるフィルター

    完了したプロジェクトのみを表示するフィルターがグラフに設定されました。予測した日数と実際の日数を比較しているところなので、これは理にかなっています。

  7. グラフの左上隅にある矢印をクリックして、プロジェクト管理者とプロジェクトの階層を上下に移動できます。 次の画像は、プロジェクトの詳細がどのように表示されるかを示しています。

    縦棒グラフの詳細

予測との差異を示す棒グラフを作成する

  1. 先ほど作成した視覚エフェクトの外側のキャンバスをクリックまたはタップします。

  2. 右側の [視覚化] ウィンドウで、[集合縦棒グラフ] をクリックまたはタップします。

    視覚エフェクト - 集合縦棒グラフ

  3. [フィールド] ウィンドウの [Project Details] から [PMAssigned][Title] をドラッグして、[視覚化] ウィンドウの [軸] にドロップします。

    [視覚化] ウィンドウの [軸]

  4. [フィールド] ウィンドウの [Project Details] から [VarProjectedActual] をドラッグし、[視覚化] ウィンドウの [値] にドロップします。

    [視覚化] ウィンドウの [値]

  5. [フィールド] ウィンドウの [Project Details] から [Status] をドラッグし、[視覚化] ウィンドウの [フィルター] 領域にドロップしてから、[完了] チェック ボックスをオンにします。

    [Status] 列によるフィルター

    視覚エフェクトは次の画像のように表示されます。

    [PMAssigned] ごとの [VarProjectedActual]

    このグラフを見れば、Irvin Sayers と Joni Sherman によって実行されたそれぞれのプロジェクトにどの程度のばらつきがあるのか一目瞭然です。 プロジェクトごとのばらつきを詳しく確認し、予測日数が実績日数より多かったのか少なかったのかを確認します。

    [Title] ごとの [VarProjectedActual]

  6. さらに視覚エフェクトを作成する前に、既に作成した視覚エフェクトを移動したりサイズ変更したりして、横に並べます。

    グラフを横に並べる

保留期間が最も長いプロジェクトを示すカードを作成する

  1. 先ほど作成した視覚エフェクトの外側のキャンバスをクリックまたはタップします。

  2. 右側の [視覚化] ウィンドウで、[カード] をクリックまたはタップします。

    視覚エフェクト - カード

  3. [フィールド] ウィンドウの [Project Requests] から [MaxDaysPending] をドラッグし、[視覚化] ウィンドウの [フィールド] にドロップします。

    [視覚化] ウィンドウの [フィールド]

  4. [書式] (ペイント ローラー) をクリックまたはタップして、[罫線][オン] に設定します。

    書式ペインター - 罫線

  5. [タイトル][オン] に設定し、「承認プロジェクトの最大保留日数」と入力します。

    タイトルの追加

    視覚エフェクトは次の画像のように表示されます。

     承認プロジェクトの最大保留日数

    このレポートを発行したあと、このタイルを使用して、保留中のプロジェクトの最大値が特定のしきい値に達した場合に、アラートをトリガーするようにします。

プロジェクトの承認日から開始予定日までの期間を表示するテーブルを作成する

  1. 先ほど作成した視覚エフェクトの外側のキャンバスをクリックまたはタップします。

  2. 右側の [視覚化] ウィンドウで、[テーブル] をクリックまたはタップします。

    視覚エフェクト - テーブル

  3. [フィールド] ウィンドウの [Project Details] から [PMAssigned][Title][ApprovedStartDiff] をドラッグして、[視覚化] ウィンドウの [値] にドロップします。

    [視覚化] ウィンドウの [値]

  4. [フィールド] ウィンドウの [Project Details] から [ProjectedStartDate] をドラッグし、[視覚化] ウィンドウの [フィルター] 領域にドロップし、[(空白)] 以外のすべての日付を選択します。

    [ProjectedStartDate] によるフィルター

  5. テーブルの列のサイズを変更して、すべてのデータが表示されるようにします。 視覚エフェクトは次の画像のように表示されます。

    [ApprovedStartDiff] の値が表示されたテーブル

  6. [ApprovedStartDiff] の下矢印をクリックまたはタップして、[平均] をクリックまたはタップします。プロジェクトの承認日から開始予定日までの平均期間を表示できます。

    平均の計算

  7. [ApprovedStartDiff] の下矢印をもう一度クリックまたはタップし、[条件付き書式] をクリックまたはタップします。

    条件付き書式

  8. 既定の設定を使用して [OK] をクリックします。

    条件付き書式のオプション

    視覚エフェクトは次の画像のように表示されます。

    条件付き書式の完了

    ご覧のように、Irvin Sayers が実行するプロジェクトは承認から開始までの期間が長い傾向があります。 割り当てられた管理者以外の要因がある可能性もありますが、これは詳しく調べてみる価値がありそうです。

レポートに関するセクションはこれで終了です。SharePoint からインポートし、Power BI Desktop でクリーンアップおよびモデリングしたデータをベースとしたレポートが完成しました。 すべてが手順どおりに進んでいれば、レポートは次の画像のように表示されているはずです。

完成したレポート

次の手順

このチュートリアル シリーズの次の手順では、Power BI プロジェクトのレポートを発行してダッシュボードを作成します。