如何在Power BI的Table A中添加列/度量值实现关联值求和?
Power BI 实现类似Excel SUM.IF的批量求和方案
前提准备
首先确保Table A和Table B之间建立正确的关系:
- 假设Table A中有一列(比如命名为
ValueName),存储value1、value2……value1000这些值; - Table B中有对应的关联列(也命名为
ValueName)和数值列(比如命名为Amount); - 用这两个
ValueName列建立一对多关系(Table A为一方,Table B为多方)。
方案1:在Table A中新增计算列
如果需要直接在Table A的每行显示对应求和结果,新建计算列,以下两种写法均可:
写法1:使用SUMX函数
总数值 = SUMX( FILTER(Table B, Table B[ValueName] = Table A[ValueName]), Table B[Amount] )
该公式会逐行筛选Table B中与当前Table A行匹配的记录,再对Amount列求和。
写法2:使用CALCULATE函数(修正版)
之前用CALCULATE无效大概率是没利用好行上下文,正确写法:
总数值 = CALCULATE( SUM(Table B[Amount]), Table B[ValueName] = Table A[ValueName] )
当表关系正确时,还可以简化为:
总数值 = CALCULATE(SUM(Table B[Amount]))
此时CALCULATE会自动通过已建立的关系,筛选出当前Table A行对应的Table B记录并求和。
方案2:创建度量值(适合报表可视化)
如果不需要在Table A中存储结果,而是在报表中动态展示,创建度量值更灵活:
值总和 = SUMX(RELATEDTABLE(Table B), Table B[Amount])
或者等价写法:
值总和 = CALCULATE(SUM(Table B[Amount]), RELATEDTABLE(Table B))
使用时,只需在视觉对象(比如表格)中放入Table A的ValueName列,再拖入这个度量值,就能自动显示每个value对应的求和结果。
内容的提问来源于stack exchange,提问作者stforek
相关产品推荐
相关产品推荐

