データの細分性を定義する

完了

データの細分性は、データ内で表現される詳細です。つまり、データの細分性が高いほど、データ内の詳細レベルが高くなります。

データの細分性は、使用している Power BI ツールに関係なく、すべてのデータ アナリストにとって重要なトピックです。 データの細分性を正しく定義することは、Power BI レポートとビジュアルのパフォーマンスと使いやすさに大きな影響を与える可能性があります。

定義されたデータの細分性

あなたの会社で 1,000 台の冷凍トラックを管理するというシナリオについて考えてみましょう。 各トラックは、数分ごとに Microsoft Azure IoT アプリケーションを使用して、現在の温度を記録します。 この温度は重要です。冷凍機能が故障すると、積み荷がすべて悪くなり、何千ドルもの損失が出るからです。 多数のトラックとセンサーによって、毎日大量のデータが生成されます。 あなたのレポートのユーザーは、特に関心があるレコードを見つけるために、膨大なレコードを調べるのは避けたいと考えています。

データの細分性を変更して、セマンティック モデルをより使いやすくするには、どうすればよいですか?

このシナリオでは、各トラックの 1 日あたりの平均を使用して、データをインポートすることができます。 この方法では、毎日、トラック 1 台あたり 1 つのレコードにまでレコードが減らされます。 コストとエラーを追跡するには、この方法で十分であると判断した場合は、そのデータの細分性を使用できます。 または、最後に記録された気温を選択するか、通常の温度の範囲を上回るか下回るレコードのみをインポートすることもできます。 これらの方法のいずれを使用しても、インポートするレコードの合計数は少なくなりますが、包括的で価値のあるデータを取り込むこともできます。

さまざまなシナリオで、毎週、毎月、または四半期ごとに定義されたデータの細分性に決めることができます。 通常は、処理しているレコードが少ないほど、レポートやビジュアルは迅速に機能します。 この方法では、セマンティック モデル全体に対する更新頻度が高くなります。つまり、より頻繁に更新できることを意味します。

ただし、この方法には欠点があります。 ユーザーがすべてのトランザクションをドリルダウンする場合、細分性の集計がその妨げとなり、このことがユーザー エクスペリエンスに悪影響を与える可能性があります。 これらを選択した意味をレポート ユーザーが理解するように、データの細分性レベルをネゴシエートすることが重要です。

データの細分性を変更して 2 つのテーブル間のリレーションシップを作成する

Power BI のテーブル間にリレーションシップをビルドする場合にも、データの細分性が影響を与える可能性があります。

たとえば、あなたは Tailwind Traders の営業チームに関するレポートを作成していると考えてみましょう。 あなたは Calendar、Sales、Budget のテーブルを使用して、合計売上と合計予算のマトリックスを時系列で作成するように依頼されました。 あなたは Sales テーブルでは、時間ベースの詳細の最低レベルが日単位であることに気付きます。たとえば、5/1/2020、6/7/2020、6/18/2020 です。 Budget テーブルは月次レベルでのみ表示されます。たとえば、予算データは 2020 年 5 月と 2020 年 6 月です。 これらのテーブルにはさまざまな細分性があるので、テーブル間のリレーションシップを作成する前に調整する必要があります。

現在のセマンティック モデルを次の図に示します。

セマンティック モデルのデータの細分性のスクリーンショット。

上の図に示すように、Budget と Calendar の間にはリレーションシップがありません。 そのため、ビジュアルをビルドする前に、このリレーションシップを作成する必要があります。 Calendar テーブルの Year 列と Month 列を新しい列に変換し、Budget テーブルでも同じ変換を行う場合、Calendar テーブルの Date 列の形式と一致させることができることにご注意ください。 その後、2 つの列の間にリレーションシップを確立できます。 このタスクを完了するには、Year 列と Month 列を連結して、形式を変更します。

Budget テーブルと Calendar テーブルのスクリーンショット。

リボンで [データの変換] を選択します。 右側のペインの [適用したステップ] で、最後のステップを右クリックして、[後にステップの挿入] を選択します。

[適用したステップ] ビジュアルの [設定の編集] コンテキスト メニューのスクリーンショット。

[ホーム] リボンの [列の追加] で、[カスタム列] を選択します。 次の式を入力します。これにより、Year 列と Month 列が連結され、列名の間にダッシュが追加されます。

Column = Table.AddColumn(#"Renamed Columns", "Custom", each [Year] & "-" &[Month])

データ型を Date に変更して、列の名前を変更します。 Budget テーブルは次の図のようになります。

日付のカスタム列のスクリーンショット。

これで、Budget テーブルと Calendar テーブルの間にリレーションシップを作成できます。

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

Power BI では、リレーションシップが自動的に検出されますが、[リレーションシップの管理] > [新規] の順に移動して、Date 列でリレーションシップを作成することもできます。 リレーションシップは次の図のようになります。

リレーションシップの確立のスクリーンショット。

このタスクを完了すると、異なるテーブル間で同じ細分性を確保することができます。 次に、DAX メジャーを作成して Total SalesBudgetAmount を計算する必要があります。 Power BI Desktop の [データ] ペインに移動して、[新しいメジャー] を選択し、次の式を使用して 2 つのメジャーを作成します。

TotalSales = SUM(Sales[Total Sales])
BudgetAmount = SUM (Budget[BudgetAmount])

[視覚化] ペインでテーブル ビジュアルを選択し、[値] フィールドに次のメジャーと [日付] を入力します。 これで、合計売上と合計予算のマトリックスを時系列で作成するという目標を達成しました。

作成されているマトリックス ビジュアルのスクリーンショット。