Power BI 儀表板建置器 是做什麼的?
將儀表板規格 (請參閱 bi-dashboard-design/references/dashboard-spec.md) 轉換為可運作的 Power BI 成品。領域知識來自領域技能;佈局和樣式規則來自 bi-dashboard-design。本技能涵蓋 Power BI 的特定部分。
首先選擇建置模式
檢查可用的項目,並告知使用者您正在使用的模式:
| 模式 | 使用時機 | 產出內容 |
|---|---|---|
| A. 透過 MCP/CLI 即時模型 | Power BI Modeling MCP 伺服器 (@microsoft/powerbi-modeling-mcp) 或 pbi-cli 已連線,且 Power BI Desktop 已開啟模型 | 直接在開啟的模型中建立資料表、關聯、量值;報表以 PBIR 檔案形式建置 |
| B. PBIP 專案檔案 | 您可以寫入檔案,但沒有即時連線 | 一個 .pbip 專案資料夾:<Name>.SemanticModel/definition/*.tmdl 和 <Name>.Report/definition/ (PBIR),使用者可在 Power BI Desktop 中開啟 |
| C. 建置套件 | 檔案或工具都不可行 (例如純對話) | DAX 量值指令碼、TMDL 片段、主題 JSON 以及一份逐步建置工作表,供開發人員遵循 |
優先選擇 A,其次 B。在模式 B 中,若使用者的 Power BI Desktop 版本仍將 PBIP 儲存選項和「使用 TMDL 格式儲存語意模型」設為預覽功能,請提醒使用者啟用這些功能。
工作流程
- 讀取規格和領域度量檔案。 您建立的每個量值都必須符合領域技能的
<domain-skill>/references/metrics.md中的定義。 - 建立星狀結構描述 (
references/tmdl-patterns.md):- 規格中每個粒度一個事實資料表;維度資料表跨事實資料表整合。
- 一個專用的
Date資料表,標記為日期資料表、連續、涵蓋所有事實日期,若領域使用會計行事曆則包含會計欄。 - 從維度到事實的單向一對多關聯。僅在有書面理由時才使用雙向關聯。角色扮演日期 (例如發票日期 vs 到期日期 vs 付款日期):一個使用中關聯,其他關聯停用,並在量值中使用
USERELATIONSHIP啟用。 - 隱藏外部索引鍵和已由量值取代的原始數值欄;在金鑰、識別碼、年份和月份號碼上設定
summarizeBy: none。 - 月份名稱和區塊標籤 (老化區間、分組) 的排序依據欄。
- 撰寫量值 (
references/dax-patterns.md):一個_Measures資料表,依主題 (例如01 Revenue、02 Margin) 使用顯示資料夾,每個量值都有格式字串和描述。先建置基礎量值,然後是比率,接著是時間智慧,最後是顯示輔助功能 (差異百分比、箭頭、狀態色彩)。 - 建置報表頁面 (
references/report-pbir.md):將每個規格元件對應到視覺效果,使用網格對應將其放置在 1280×720 畫布上,套用來自bi-dashboard-design/references/theme-tokens.md的主題,新增向下鑽研頁面和一個重設書籤。 - 安全性: 如果規格包含
row_level,請使用相關維度的 DAX 篩選建立 RLS 角色,並記錄如何在服務中指派成員。 - 驗證: 執行
references/dax-patterns.md#verification中的 DAX 檢查 (總計與來源相符、時間智慧傳回最新期間的值、無空白 KPI),然後執行bi-dashboard-design驗收檢查清單。報告無法驗證的項目。
網格對應 (1280 × 720 畫布)
- 邊距 16 px;可用寬度 1248 px;12 欄,每欄 88 px,欄距 16 px。
- 欄跨距
c→ 寬度c*88 + (c-1)*16px;x =16 + col_index*104。 - 一個高度單位 = 56 px,間距 16 px (標題列約 64 px)。
- 長頁面:對於 L1/L2,建議使用第二頁而非垂直捲動;L3 詳細資料頁面可以使用較高的畫布 (1280 × 1440) 來顯示表格。
視覺效果對應
| 規格元件 | Power BI 視覺效果 | 備註 |
|---|---|---|
| kpi_card | 卡片 (新增) / KPI | 參考標籤用於比較;透過量值進行條件式色彩設定 |
| trend_line | 折線圖 | 目標作為第二個量值或常數線;透過相對日期篩選或量值視窗設定 13 個月 |
| ranked_bar | 群組長條圖 | 前 N 名篩選 + 必要時透過動態區分量值設定「其他」 |
| variance_bar | 變異量值的群組長條圖 | 依據 Var 正負號 × 方向規則設定色彩 |
| waterfall | 瀑布圖 | 明細欄位 = 驅動維度 |
| stacked_bar | 100% 堆疊長條圖 | |
| matrix | 矩陣 | 資料列階層、值 Actual/Budget/Var/Var%、Var% 的儲存格元素 |
| exception_table | 表格 | 前 N 名或嚴重性篩選、條件式圖示、啟用向下鑽研 |
| aging_buckets | 群組直條圖 | 區間欄依區間順序欄排序 |
| funnel | 漏斗圖或長條圖 | 依階段順序排序的長條圖更易閱讀 |
| map | Azure 地圖 / filled map | 僅在租用戶允許地圖時使用 |
| slicer | 交叉分析篩選器 (下拉式或圖格) | 在頁面之間同步交叉分析篩選器,用於期間和組織 |
防護措施
- 切勿在量值中硬編碼日期 (例如
"2026-10-31");應從資料或參數中推導「最新完整期間」。 - 每個比率都使用
DIVIDE()。絕不在資料列上對比率取平均值。 - 優先使用量值而非計算欄;優先使用 Power Query / 倉儲轉換而非 DAX 計算資料表。
- 除非規格要求且已設定 RLS/OLS,否則不要匯入敏感欄 (SSN、病患姓名、薪資細節)。
- 關閉自動日期/時間;它會使模型膨脹並與 Date 資料表衝突。
參考檔案
references/tmdl-patterns.md– 資料表、欄、關聯、Date 資料表、角色的 TMDL 語法。在模式 A/B 中閱讀。references/dax-patterns.md– 可重複使用的 DAX:比率、時間智慧、半加總快照、老化區間、前 N 名 + 其他、顯示輔助功能、驗證查詢。references/report-pbir.md– PBIR 資料夾佈局、視覺效果 JSON 基本要素、向下鑽研、書籤以及模式 C 的建置工作表格式。