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

在PowerBI中使用两个事实表执行SUMPRODUCT运算的技术咨询

在Power BI中实现两个事实表的SUMPRODUCT计算

没问题,我来帮你搞定这个SUMPRODUCT计算需求!本质上我们要做的就是把dw fact qnt cotas里的Quantidade_total和API Quantum中匹配到的分红值逐行相乘,再把所有乘积加起来。下面分两种常见场景给你具体的DAX实现方案:

场景1:数据模型已建立关联

如果你的模型已经通过以下关联把两张表连起来了:

  • dw fact qnt cotas[Ativo] 和 API Quantum[Codigo] 是匹配字段
  • dw fact qnt cotas[DataCorrigida] 和 API Quantum[Data] 是匹配日期

那直接用SUMX就能轻松实现,DAX公式如下:

SUMPRODUCT_Result = 
SUMX(
    'dw fact qnt cotas',
    'dw fact qnt cotas'[Quantidade_total] * 
    RELATED('API Quantum'[Provento Dividendos não Ajustado])
)

这个公式的逻辑是:逐行遍历dw fact qnt cotas的每一条聚合记录,通过已有的关系找到API Quantum里对应的分红值,相乘后把所有结果累加起来,完美对应SUMPRODUCT的需求。

场景2:未建立表间关联(或关联无法直接使用)

如果因为模型设计的原因没建上述关系,或者关联方向导致RELATED用不了,那就换LOOKUPVALUE来精准匹配,DAX公式是这样:

SUMPRODUCT_Result = 
SUMX(
    'dw fact qnt cotas',
    'dw fact qnt cotas'[Quantidade_total] * 
    LOOKUPVALUE(
        'API Quantum'[Provento Dividendos não Ajustado],
        'API Quantum'[Codigo], 'dw fact qnt cotas'[Ativo],
        'API Quantum'[Data], 'dw fact qnt cotas'[DataCorrigida]
    )
)

这里LOOKUPVALUE会根据当前行的Ativo和DataCorrigida,在API Quantum里找到完全匹配的分红值,再和Quantidade_total相乘,最后用SUMX把所有乘积加总。

几个要注意的点

  • 一定要确保匹配字段的数据类型完全一致!比如Ativo和Codigo都得是文本类型,DataCorrigida和Data都得是日期类型,不然会出现匹配不上的情况。
  • 如果API Quantum里同一个Codigo+Data对应多条记录,LOOKUPVALUE会报错,这时候得先给API Quantum做个汇总:
API Quantum 汇总表 = 
SUMMARIZE(
    'API Quantum',
    'API Quantum'[Codigo],
    'API Quantum'[Data],
    "总分红", SUM('API Quantum'[Provento Dividendos não Ajustado])
)

然后在SUMPRODUCT的公式里用这个汇总表的总分红字段就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 18:37:32