Power BI DAX 度量值怎麼寫提示詞(CALCULATE 與篩選上下文、同比環比、YTD 累計、佔比與排名)
用 Power BI 做報表時寫不出或寫不對 DAX 度量值(同比算出來是空的、佔比在切片器下不對、累計值每月重置錯了)時用:描述數據模型和指標定義,AI 寫出度量值並解釋篩選上下文如何變化,還會檢查日期表和表關係這些常見的根源問題。
通用大模型 對話模型通用
你是一名精通 DAX 和 Power BI 數據建模的分析師。請幫我寫度量值。 - 數據模型:[數據模型](例:事實表「銷售」,維度表「日期」「產品」「門店」,星型結構) - 表關係與關鍵字段:[表關係](例:銷售表的日期列關聯日期表的日期列,單向,多對一) - 是否有標記好的日期表:[日期表情況] - 需要的指標(每個寫清業務定義): [指標定義] - 報表中如何使用:[使用方式](例:矩陣按年月展開,有門店切片器) - 現有的度量值或報錯(如果有): [現有度量值] 請輸出: 1. 先檢查模型:時間智能函數要求有連續完整的日期表並標記為日期表;關係的方向與基數是否合理;是否存在應該用度量值卻用了計算列的情況。發現問題先指出。 2. 度量值: - 先定義基礎度量值(如銷售額),其他度量值引用它,不要在每個度量值裏重複寫聚合; - 同比、環比、年初至今累計、移動平均:使用合適的時間智能函數,並處理沒有上期數據時返回空值而不是錯誤或 0; - 佔比:分母需要移除哪些篩選(全部、只移除產品維度、保留切片器的選擇),說明 ALL、ALLEXCEPT、ALLSELECTED、REMOVEFILTERS 的區別,按我的需求選擇; - 排名:使用排名函數,並說明並列和空值的處理; - 用 VAR 定義中間變量,提高可讀性和性能;除法用 DIVIDE 防止除零。 3. 逐個解釋:這個度量值在矩陣的某個單元格中,篩選上下文是什麼,CALCULATE 把它改成了什麼。 4. 驗證方法:如何用一個簡單的表格視覺對象或手工計算來核對結果。 5. 格式:度量值的命名規範、顯示格式(百分比、千分位)、放在專門的度量值表中。
高亮處換成你自己的內容:[數據模型]、[表關係]、[日期表情況]、[指標定義]、[使用方式]、[現有度量值]
ChatGPT Plus 充值
已被複製 0 次
使用說明
怎麼填變量:[數據模型] 和 [表關係] 是 DAX 寫對的前提,很多「度量值不對」的問題其實是關係或日期表的問題。[指標定義] 一定要寫清業務口徑,例如「佔比 = 當前產品銷售額 ÷ 當前門店篩選下所有產品的銷售額」,口徑不同,用的函數完全不同。
常見坑:
- 沒有單獨的日期表,直接在事實表的日期列上用時間智能函數,結果經常是空的或不正確。要建立連續的日期表並標記。
- 佔比的分母用了移除全部篩選的寫法,切片器選擇了某個門店後,分母仍然是全公司的銷售額,佔比變得很小。需要保留切片器選擇時,用 ALLSELECTED 一類的寫法。
- 用計算列實現本該是度量值的指標,結果不會隨篩選變化,還佔用模型空間。
追問技巧:追問「這個度量值在總計行顯示的數字不對,為什麼」——總計行的篩選上下文和明細行不同,這是 DAX 中最常見的困惑之一。
示例輸出
示例,僅供參考(節選)
銷售額 = SUM ( '銷售'[金額] )
銷售額 同比 % =
VAR 本期 = [銷售額]
VAR 去年同期 = CALCULATE ( [銷售額], SAMEPERIODLASTYEAR ( '日期'[日期] ) )
RETURN
IF ( NOT ISBLANK ( 去年同期 ), DIVIDE ( 本期 - 去年同期, 去年同期 ) )
銷售額 年初至今 = TOTALYTD ( [銷售額], '日期'[日期] )
產品佔比 % =
DIVIDE ( [銷售額], CALCULATE ( [銷售額], ALLSELECTED ( '產品' ) ) )
解釋「產品佔比」:在矩陣中「華東門店 × 產品 A」這個單元格里,篩選上下文是門店為華東、產品為 A。分母中 ALLSELECTED('產品') 移除了單元格本身對產品的篩選,但保留切片器的選擇,因此分母是「華東門店在當前切片器選擇下所有產品的銷售額」。
同款作品
用這條提示詞做出來的作品;原作者會因此獲得積分
還沒有同款,來做第一個。


0 條評論
還沒有評論,來搶沙發~