You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DAX使用SUMMARIZE合并多表时Sales Data数据缺失问题咨询

问题原因

  • DAX语法逻辑错误,存在递归引用。当前计算表的名称为Table1,你在VAR中定义了临时表UserTable,但RETURN段的SUMMARIZE函数第一个参数错误填写为Table1,相当于调用尚未完成计算的目标表本身,导致计算逻辑异常,大量数据行丢失。
  • SUMMARIZE函数特性导致数据去重。SUMMARIZE是分组聚合函数,你将所有输出列设置为分组依据,若Sales Data中存在所有指定列值完全相同的重复行,会被自动合并为一行,对应数据丢失。
  • 表间关系配置问题导致行过滤。如果Sales Data和两个维度表Storename、Country mapping的关系设置为内联接,Sales Data中关联键在维度表中无匹配值的行,会被RELATED函数自动过滤,不会进入结果表。

解决方法

  1. 修正表引用参数:将SUMMARIZE的第一个参数替换为你之前定义的临时表UserTable,避免递归调用。
  2. 替换函数避免去重:如果需要保留Sales Data的所有原始行,不要使用SUMMARIZE做全列分组,改用SELECTCOLUMNS筛选需要的列,该函数不会执行分组去重,会原样保留所有行。
  3. 调整表间联接类型:如果需要保留维度表无匹配的销售数据,将维度表和Sales Data的关系修改为左外联接(Power BI中编辑关系时勾选“包括'Sales Data'中没有匹配行的所有行”),也可以搭配COALESCE函数给无匹配的字段设置默认值,避免行被过滤。

修正后的参考代码

Table1 =
VAR UserTable =
    ADDCOLUMNS (
        'Sales DATA',
        "Store", COALESCE(RELATED('Storename'[Store info]), "未匹配门店"),
        "Country", COALESCE(RELATED('Country Mapping'[Country Code]), "未匹配国家"),
        "Region Name", COALESCE(RELATED('Country Mapping'[Region]), "未匹配区域")
    )
RETURN
SELECTCOLUMNS (
    UserTable,
    "Store", [Store],
    "Country", [Country],
    "district", [district],
    "Region Name", [Region Name],
    "Date", 'Sales DATA'[Date],
    "Category", 'Sales DATA'[Category],
    "Product", 'Sales DATA'[Product],
    "Store Code", 'Sales DATA'[Store Code],
    "Qty Sold", 'Sales DATA'[Qty Sold],
    "Product cost", 'Sales DATA'[Product cost],
    "Profit", 'Sales DATA'[Profit]
)

内容的提问来源于stack exchange,提问作者ccha735

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 03:57:05