【Power BI】TMDL 是什麼?搭配 AI 快速生成 DAX 的實戰應用 Ⅰ
💭在面對越來越複雜的 Power BI 報表專案時,你是否遇過以下狀況?
- 多人共用模型卻容易互相覆蓋
- DAX 量值數百個,命名混亂難維護
- 想為報表使用者提供量值說明,卻苦無時間整理
- 每次複製報表都要重頭建立量值與欄位格式
現在,這些問題你可以透過 TMDL + AI 自動化解決!
🔍 TMDL 是什麼?它如何改變 上述的困擾?
TMDL(Tabular Model Definition Language) 是 Power BI 用來描述語意模型(semantic model)的編寫指令碼 (script) 語言,能以文字方式定義資料表、欄位、資料關聯、量值(measures)以及格式等模型元件。
上述的解釋可能你還是感到很困惑,老師使用生活化的方式舉例
Power BI 以往都是使用”視覺化及功能化”的方式讓使用者操作,其中包含資料檢視 (Table View) 以及建立資料關聯 (Model View)等
就像你想煮一套菜,你可能會在 Youtube 直接觀看廚師操作給你看
而 TMDL 的出現,你不再只是靠「看廚師怎麼煮」,而是把整本菜單都寫成結構化的文字,例如:
RECIPE '滷肉飯' {
INGREDIENT '絞肉' = 300g;
INGREDIENT '醬油' = 50ml;
INGREDIENT '糖' = 1匙;
STEP '滷製時間' = 60分鐘;
}
這份「文字食譜」就是 TMDL!你可以:
- 看得懂所有食材與步驟 (適合高階開發人員)
- 傳給別人複製料理 (減少報表重工)
- 比對不同版本的菜單(版本控制)
- 請 AI 幫你生成新菜單或優化配方(自動產生 KPI / DAX)
📘 如何產出現有資料表的 TMDL 的編寫指令碼 (script) ?
若你發現你的 Power BI 左側沒有看到 TMDL 檢視,可以至【檔案】>【選項與設定】>【選項】
在跳出來的對話視窗中,請點選全域中的預覽功能,並將 TMDL 檢視打勾即可
在 Power BI 左側看到 TMDL 檢視的頁面,接下來將資料表拖曳到裡面,即可產出該資料表對應的編寫指令碼 (Script)

🔧舉例 TMDL 的四大應用之一:自動產出 DAX 量值
範例情境:你有一張資料表為訂單明細,需要建立「訂單總金額」、「每位顧客的平均消費」等 DAX 量值。
❌ 在沒有 TMDL 的原始溝通方式:由於目前大多數 AI 工具在未付費的版本下,對於圖片的問答都有所限制,因此在未使用 TMDL 的情況下,使用者通常會使用純文字與 AI 描述你的資料,例如
我有一張客戶訂單明細,其中包含數量跟價格,請幫我寫出訂單總金額的 DAX
👉ChatGPT 回答:

由於人工輸入去描述現有的資料,經常有錯誤情形如下:
- ❌表格名稱可能不存在 (上述出現的情況)
- ❌欄位名稱可能不存在
- ❌DAX 函式運用邏輯錯誤
✅ 有 TMDL 的清楚溝通方式:因 TMDL 是使用語意模型 (semantic model) 呈現資料表,因此可以直接將該資料表下的指令碼”完整”提供給 AI 工具
✍️AI 提示詞 Prompt:
請幫我根據以下 TMDL 結構產出 5 個實用的 DAX 量值。請使用 Power BI TMDL 語法回傳,每個量值需包含:
1.每個量值使用「中文名稱」並加上單引號(例如 '會員等級的總消費')
2.每個量值加上 /// 註解,說明用途與計算邏輯
3.產出格式要符合下方這個範例語法:
createOrReplace
ref table 訂單明細
measure '訂單總金額' =
/// 計算每筆訂單的實際總金額(數量 × 單價),用於總體銷售分析
SUMX('訂購明細', '訂購明細'[數量] * '訂購明細'[單價])
[TMDL 編寫指令碼 (script) ]
- 灰色區域 [TMDL 編寫指令碼 (script) ] 請記得更換,
- 請留意量值放置的位置,本例子是放置在原資料表 「訂單明細」(ref table *)
- 即便沒有錯誤訊息,可以成功套用,記得要回去資料或報表檢視中查看量值是否有誤
❗以老師目前的經驗,有幾個在使用 TMDL 模型時的注意事項:
- ref table * 這一段語法為放置量值的地方,是我發現 AI 生成最容易出現的問題
- 建議先建立空白的資料表存放 AI 產生的量質,方便除錯或是管理
接下來只要將 TMDL 編寫指令碼 (script)貼回 Power BI 中,並檢查是否有錯誤訊息,若無誤按套用後大功告成


由於 TMDL 完整呈現了 Power BI 資料結構,因此除了避免錯誤,更可以提供完整的基礎量值結構:
- ✅ 正確使用了欄位名稱
- ✅ 快速建立量值
- ✅ 有語意註解與標準格式
🎯 結論:
老師在實作時,共使用了不同類型的 AI 工具,包含 ChatGPT 以及 Claude,兩者生成 DAX 的結果並沒有太大差異,因此同學都可以試試看喔!
項目 | 無 TMDL | 有 TMDL |
---|---|---|
溝通效率 | 低,常需要來回解釋 | 高,直接丟 TMDL 模型片段 |
出錯率 | 高,欄位猜錯、邏輯不符 | 低,AI 根據結構產出精準內容 |
可擴充性 | 難以批次產生 | 可批次生成多個 量值,並加入格式與描述 |
適合初學者? | 容易卡關 | 不需會寫 DAX,只需會整理模型結構 |
📥 點我下載練習檔
*若已經申請下載過練習檔的同學,可以直接到 Google Sheet 查看
下一篇文章老師將帶你認識 TMDL 其他應用情境!