【Power BI 】TMDL 模型升級篇:從單張資料表到多表關聯,讓 AI 快速生成 DAX 的實戰應用 II
在上一篇,我們使用「訂單明細」資料表中的 TMDL 檢視,與 ChatGPT 溝通建立至少 5 個實用的 DAX 量值。但只靠這張表建立分析的結果有限,例如:
- 想看會員等級的總消費?
- 想分析不同性別、年齡層的消費行為?
這時就會建立其他資料表來增加分析的維度,例如我們加入「顧客清單」資料表,並與「訂購明細」資料表建立關聯(relationship)。

💬如何將多張資料表與資料模型提供給 AI ?
若要完整寫出整個資料表與資料模型的編寫指令碼 (script),可直接拖曳【模型】的語意模型 (semantic model),即可產生完整的 TMDL
你會發現 TMDL 除了資料表之外,另外包含了資料關聯性 (Relationship)

✅ 模型化的 TMDL,讓 AI 自動生成 DAX
過去你只能跟 AI 說:「幫我分析不同會員等級的總金額」,但 AI 並不知道「會員等級」從哪來。
現在有了 TMDL,AI 能夠清楚判斷:
- 關聯是透過顧客名稱建立的
- 哪張表提供訂單金額
- 哪張表提供維度資訊
雖然模型化的 TMDL 可有效與 AI 溝通,但為了確保產出的結果與使用習慣相符,因此跟它溝通的方式 (提示語 Prompt) 也需要留意
📌推薦的 AI 提示語 (Prompts)
根據老師的操作經驗,為了確保它產出的量值以及量質的用途說明都能夠完整產出,推薦給大家我平常在用的提示語 (Prompts)
✍️AI 提示詞 Prompt:
請根據以下 TMDL 結構,為這張表設計 5 個包含但不限於會員相關、訂單分析的量值
並請以 Power BI TMDL 語法輸出,每個量值需包含:
1.每個量值使用「中文名稱」並加上單引號(例如 '會員等級的總消費')
2.每個量值加上 /// 註解,說明用途與計算邏輯
3.產出格式要符合下方這個範例語法:
createOrReplace
ref table 量質
measure '訂單總金額' =
/// 計算每筆訂單的實際總金額(數量 × 單價),用於總體銷售分析
SUMX('訂購明細', '訂購明細'[數量] * '訂購明細'[單價])
[TMDL 編寫指令碼 (script) ]
- 灰色區域 [TMDL 編寫指令碼 (script)] 請記得更換
- ref table * 後方為量值放置的資料表,請記得更換
❗以老師目前的經驗,有幾個在使用 TMDL 模型時的注意事項:
- ref table * 這一段語法為放置量值的地方,是我發現 AI 生成最容易出現的問題
- Claude 回傳的語法錯誤率通常比 ChatGPT 低,但兩個回傳的 TMDL 的量質都有些許的錯誤,需要同學有基本的 DAX 概念
- 建議先建立空白的資料表存放 TMDL 搭配 AI 產生的量質,方便除錯或是管理
接下來只要將 TMDL 編寫指令碼 (script) 貼回 Power BI 中,並檢查是否有錯誤訊息,若無誤按套用後大功告成


🎯 結論:
目前使用 TMDL 建立多張資料表中的量值仍存在一些穩定性與相容性上的挑戰。這可能與目前的提示語設計尚未完全成熟有關,容易出現語法錯誤或模型應用失敗的情況。若能搭配 Microsoft Copilot 工具輔助生成或校正 DAX 公式,也許有助於提升建立效率與準確度,老師會再多多試驗。
歡迎大家在留言區分享自己的測試結果與實際觀察,一起探索更穩定的使用方式!
📥 點我下載練習檔
*若已經申請下載過練習檔的同學,可以直接到 Google Sheet 查看
老師會在之後的文章繼續帶你認識 TMDL 其他應用情境!