Power BI DAX 中 INTERSECT 錯誤:數值欄位與文字欄位類型不相容

Leung Lin Ann 20 信譽點數
2026-04-28T02:41:34.2+00:00

你好,我目前在 Windows 電腦上使用 Power BI Desktop,遇到一個無法解決的 DAX 問題。我建立了一個度量值,使用 INTERSECT 來計算本月與上個月的回購客戶,但系統一直報錯,指出無法比較「數值」與「文字」類型的欄位,即使我認為邏輯是正確的。這個度量值是我們公司用來追蹤每月銷售情況的報表模型之一部分,現在讓人相當困擾,因為其他部分都運作正常,唯獨這裡出現問題。請問這種資料類型不相容的原因是什麼?以及應該如何正確解決?

Windows 商務版 | Windows Server | 使用者體驗 | 其他
0 則留言 沒有留言

1 個回答

排序依據: 最實用
  1. Domic Vo 36,835 信譽點數 獨立顧問
    2026-04-28T05:58:24.15+00:00

    亲爱的安,

    错误发生是因为 INTERSECT 需要两个表对比较列的数据类型相同。在你的案例中,交叉点的一侧返回的是数字键(很可能是以整数形式存储的CustomerID),另一侧返回的是文本值(可能是CustomerName或基于字符串的标识符)。DAX 强制执行严格类型匹配,因此它会抛出不兼容错误,而不是隐式转换。

    正确的解决方法是确保两个输入INTERSECT都对齐在同一列和数据类型上。如果你的客户标识在事实表中是数字,而维度中是文本,你需要明确地投射一侧,例如用来VALUE()将文本转换为数字,或FORMAT()将数字转换为文本,具体取决于哪个标识符具有权威性。最佳实践是将数据模型归一化,使关系键(CustomerID)在所有表中都一致地类型化,然后在你的测量中使用该列。一旦两侧 INTERSECT 使用相同的密钥类型,测度将正确无误地计算。

    如果上述回复能帮助你回答问题,请点击“接受答案”,这样社区中面临类似问题的人也能轻松找到解决方案。非常感谢你的贡献。

    多米克诉

    此回答有幫助嗎?

    0 則留言 沒有留言

您的回答

答案可由問題作者標示為「已接受」,而由仲裁者標示為「推薦」,這可協助使用者知道答案解決了作者的問題。