
(PowerBI勉強DAY1) 環境構築とインターフェース理解
Tableau使いのごまのすけです。いよいよ本編となるDAY1、学習計画にそって1日1日遂行していきます。
Power BI Desktopのインストール
Tableauユーザーが最初にびっくりすることの1つは、Tableau Desktopに相当するPower BI Desktopが「無料」ということじゃないでしょうか。
TableauにもTableau Desktop Public Editionというあって、最近のVersionではローカル保存も出来るようになってかなり本製品に近づいたものの、接続できるデータベースの制約やアプリUIの機能制約もあるので、まだまだ試用版という感じはぬぐえないです。
Tableauの本製品はこちらからダウンロードしますが、Power BI Desktopのインストールは、以下どちらかになるようです。
私はインストール管理が楽なMicrosoftストアからインストールすることにしました。インストール画面にいってボタンをぽちっと押すだけで簡単です!



TableauはメジャーVerごとに別アプリ扱いだがPower BIは違うのかな?
まだ1Verしか触れていないのでよくわからない。。。
基本構成(レポートビュー、データビュー、モデルビュー)の理解。
インストール出来たら、早速Power BI画面とご対面。





Tableauとデータペインの位置が真逆なのが気になって仕方ない。
なお理由は不明ながら3つ読み込んだデータソースのうち、2つめと3つめは「1行目がヘッダ」になっていなかったので、この記事を参考に修正しました。何か操作が悪かったんだろうか・・・

さて、次にビューの切替です。画面左に縦に並ぶアイコンで切り替えます。上から順に冒頭の「レポートビュー、データビュー、モデルビュー」です。(ネット上の多くの文献やChatGPTなどは、データビューと出してきますが、最新アプリだとテーブルビューになってます。最近になって表記が変わったのかも?本記事では学習計画にとってデータビューで記載統一します。)

レポートビュー

データビュー

クイックにローデータを見えるUIは結構便利だと思います。
モデルビュー

なぜか「関係者」は設定されていて「返品」は設定されていなかった。
Tableauは読込時にやるけど、PowerBIは後からやる感じなのかな。
慣れもあるけどTableauの方が結合状況見やすいな。
DAXクエリビュー

いまは、そのようなものがあることだけ認識。
Tableauとの違いを確認(例: Power BIのデータモデル重視、DAXの存在)
これはさっぱり不明だったのでGrokさんに色々と尋ねてみました。長くなりますが備忘的に内容を記載します。最初に概略、次いで詳細の順。
ケースバイケースだろ!と思う部分もありますが、総括するとPower BIの方がデータモデリングについて「がっちり作りこむ思想」で、Tableauの方が「アドホックに作る思想」ということが言いたいらしい。
実際、Tableauの計算フィールドが原則ワークブック単位の管理となり、ワークブックをまたいだ共通利用出来ない面倒さなどあるので、そういう点にPowerBIは強いのかも?と思った次第です。
エンタープライズなダッシュボード利用などに使う想定の前者と、個人がセルフBIする想定の後者みたいに考えると、しっくり来る気はしました。
以下、Grokさんの出力。
Power BIのデータモデル重視(概略)
Tableauに慣れている人なら、Power BIの「データモデル重視」は、「Tableauでいうデータソースの準備をさらに一歩進めて、事前に完璧な設計図を作っておく」イメージに近いです。Tableauでは「とりあえずデータを入れて、ビジュアルを作りながら調整する」ことが多いと思いますが、Power BIでは「まず設計図(モデル)をしっかり作ってから、ビジュアルで遊ぶ」感覚です。
Tableau: データをキャンバスに投げ込んで、絵を描きながら考えるアーティスト
Power BI: 設計図を引いてから建築を始めるエンジニア
Power BIのデータモデル重視(詳細)
Power BIでは、データをインポートした後、モデルビューでテーブル間のリレーションシップ(例えば、主キー-外部キーの関係)を明示的に定義し、その上でDAX(Data Analysis Expressions)という言語を使って計算列やメジャーを作成します。このデータモデルが、レポートやビジュアルの土台となり、データの処理や分析の効率性・正確性を支えます。
ポイント:
データモデルを事前に設計する必要がある(リレーションシップや計算ロジックを明確化)。
インメモリエンジン(VertiPaq)がモデルを最適化し、高速な分析を実現。
「データソースから直接クエリを投げる」よりも、「モデルを作ってから使う」アプローチが基本。
Tableauとの対比
Tableauはどちらかというと「データソース直結型」のアプローチが強く、データモデルよりもビジュアル化や探索的な分析にフォーカスしています。以下に違いを整理します。
1. データ準備とモデリング
Power BI:
データモデルを事前に構築する(リレーションシップを定義、DAXで計算を追加)。
データをPower BIにインポート(またはDirectQueryで接続)し、モデルを最適化。
例: 売上テーブルと顧客テーブルをリレーションで結び、DAXで「総売上=SUM(売上[金額])」のようなメジャーを定義。
Tableau:
データソースを直接接続し、リレーションシップは必要に応じて後から調整可能。
モデル構築よりも「データブレンド」や「ジョイン」をその場で設定する柔軟性が強い。
例: 売上と顧客データをドラッグ&ドロップでジョインし、その場で計算フィールド(例: SUM([売上]))を作る。
2. 分析の起点
Power BI:
事前に設計したデータモデルが分析の基盤。モデルがしっかりしていないとビジュアルの動作が不安定になることも。
「モデルが主」で、ビジュアルはその結果を表示するもの。
Tableau:
データソースやその場での操作が起点。モデルを意識せずとも、直感的にビジュアルを作りながら分析を進める。
「ビジュアルが主」で、データはその場で調整可能。
3. 計算のスタイル
Power BI:
DAXを使い、モデル内で再利用可能なメジャーや計算列を定義。複雑なロジックもモデル内で完結。
例: 年次成長率をDAXで事前に定義し、レポート全体で使い回す。
Tableau:
計算フィールドをビジュアル単位で作成。必要に応じてその場でロジックを追加。
例: 特定のチャートで成長率を計算したいとき、その場で式を書く。
4. パフォーマンス
Power BI:
モデルを最適化することで、大規模データでも高速処理が可能。ただし、モデル設計が悪いとパフォーマンスが落ちる。
Tableau:
データソースに依存するため、ソースが遅いと処理も遅くなる。モデル設計の手間は少ないが、最適化はソース側に委ねられる。
DAXの存在(概略)
Tableauの計算フィールド: その場でメモに計算式を書きながら絵を描く感覚。即興性が高く、ビジュアルに合わせて柔軟に調整。
DAX: 事前に設計図と計算ルールを作っておいて、それを使って建築する感覚。準備に時間かかるけど、土台がしっかりしてる。
DAXの存在(詳細)
Power BIにおけるDAX(Data Analysis Expressions)とは、Power BIやExcel Power Pivot、SQL Server Analysis Servicesで使用される計算式言語です。データの分析やモデリングを強化するために、計算列、メジャー、テーブルを生成する式を書くのに使われます。Tableau使いの方に向けて、Tableauの計算フィールドとの違いを交えて説明します。
DAXとは何か
DAXは、データモデル内で高度な計算や集計を行うための言語で、以下のような特徴があります:
役割: データモデルに基づいて、カスタム計算(例: 売上の合計、成長率、特定条件に基づくフィルタリングなど)を作成。
主な用途:
メジャー: ビジュアルで動的に計算される値(例: Total Sales = SUM(Sales[Amount]))。
計算列: テーブルに固定の列として追加される値(例: Profit = Sales[Revenue] - Sales[Cost])。
計算テーブル: 条件に基づく新しいテーブル生成。
特徴:
エクセルの関数(SUM、AVERAGEなど)に似ているが、データモデルのリレーションシップやコンテキスト(行コンテキスト、フィルタコンテキスト)を活用する点で強力。
インメモリエンジン(VertiPaq)と連携し、高速処理を実現。
Tableauとの対比
Tableauの「計算フィールド」と似た役割を果たしますが、設計思想や使い方に大きな違いがあります。以下に具体的に比較します。
1. 基本コンセプト
DAX (Power BI):
データモデル内で動作し、リレーションシップやテーブル間の関係性を前提に計算。
モデル全体で再利用可能な計算を定義(特にメジャー)。
例: Total Sales = SUM(Sales[Amount]) を定義すると、レポート内のあらゆるビジュアルで使える。
計算フィールド (Tableau):
ビジュアル単位で動作し、データソースやその場でのデータに依存。
その場限りの計算が多く、再利用には別の工夫が必要。
例: SUM([Sales]) をチャートごとに個別に書く。
2. コンテキストの扱い
DAX:
行コンテキスト: 計算列を作るとき、現在の行に基づいて計算。
フィルタコンテキスト: ビジュアルやスライサーからのフィルタを自動で反映。
例: Profit Margin = DIVIDE(SUM(Sales[Profit]), SUM(Sales[Revenue])) は、フィルタされたデータに動的に適用される。
Tableau:
コンテキストはビジュアルやフィルタで直感的に決まるが、明示的な「コンテキスト制御」は少なく、LOD(Level of Detail)式で補う。
例: {FIXED [Category] : SUM([Sales])} のようにLODで固定レベルを指定。
3. 再利用性
DAX:
一度メジャーを定義すれば、モデル全体で使い回せる。保守性が高い。
例: Yearly Growth = CALCULATE([Total Sales], PREVIOUSYEAR(Calendar[Date])) を全レポートで共有。
Tableau:
計算フィールドはワークシートやデータソースに依存するため、再利用にはダッシュボード間でコピーするか、パラメータを活用。
グローバルな「メジャー」の概念がない。
4. 学習曲線と柔軟性
DAX:
最初は学習コストが高い(コンテキストやDAX特有の関数を理解する必要あり)。
複雑な分析(時系列計算、条件付き集計)に強い。
例: Sales YTD = TOTALYTD(SUM(Sales[Amount]), Calendar[Date]) で年始からの累計を簡単に計算。
Tableau:
直感的で初心者に優しい。ドラッグ&ドロップと同時に計算を追加可能。
シンプルな計算は簡単だが、複雑なロジックはLODやテーブル計算で対応(ややトリッキー)。
例: 年累計は RUNNING_SUM(SUM([Sales])) を使い、ビューで調整。
5. 使用例
DAX:モデル内で定義し、どのビジュアルでも使える
Avg Sales per Customer =
DIVIDE(
SUM(Sales[Amount]),
DISTINCTCOUNT(Customers[CustomerID])
)
Tableau:特定のビジュアルでその場で計算。
SUM([Sales]) / COUNTD([CustomerID])
アクション: サンプルデータ(Excelなど)を使って簡単なビジュアル作成
Tableauと似たようなもんだろう!と、とりあえず何も見ずに触ってみる。右のデータペインで使う項目をチェックすると左にグラフが出来た。
おそらく赤枠で囲ったあたり(ピボットのUIに似てる)の内容を色々触ってグラフの見た目を変えていくんでしょうね。
赤枠の内容は上のグラフアイコンごとに変わるので、Power BIは最初に作成するグラフを決めて、そこのプロパティに各種設定をしていく流れなのかなと理解しました。
Tableauは最初に作るグラフの種類を決めるとかいう概念がなく、データを行・列シェルフやマークに入れていくことで、色々なビジュアライズが出来上がるので、この辺の違いは慣れるまで苦労しそう。

まとめ
データもビジュアライズも共通して、最初にきっちり設計する思想のPower BIと、ビジュアライズ分析の過程で設計が出来上がっていくTableauの違いみたいなことがありそう、と感じました。
どっちが良い悪いではなく目的次第なのでしょうが、これが大企業の導入選定において「どっちかを選べ」となると、なかなか難しい問題になりそう・・・と改めて思った次第です。
さて、明日も引き続き頑張ろう。