【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 模型時的注意事項:
  • ref table * 這一段語法為放置量值的地方,是我發現 AI 生成最容易出現的問題

接下來只要將 TMDL 編寫指令碼 (script)貼回 Power BI 中,並檢查是否有錯誤訊息,若無誤按套用後大功告成

由於 TMDL 完整呈現了 Power BI 資料結構,因此除了避免錯誤,更可以提供完整的基礎量值結構:

  • ✅ 正確使用了欄位名稱
  • ✅ 快速建立量值
  • ✅ 有語意註解與標準格式

🎯 結論:

老師在實作時,共使用了不同類型的 AI 工具,包含 ChatGPT 以及 Claude,兩者生成 DAX 的結果並沒有太大差異,因此同學都可以試試看喔!

項目 無 TMDL 有 TMDL
溝通效率 低,常需要來回解釋 高,直接丟 TMDL 模型片段
出錯率   高,欄位猜錯、邏輯不符   低,AI 根據結構產出精準內容
可擴充性 難以批次產生   可批次生成多個 量值,並加入格式與描述  
    適合初學者? 容易卡關 不需會寫 DAX,只需會整理模型結構

📥 點我下載練習檔

*若已經申請下載過練習檔的同學,可以直接到 Google Sheet 查看

下一篇文章老師將帶你認識 TMDL 其他應用情境!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *