如何在Power BI中基于另一表条件计算指定表的金额总和
Power BI:计算符合条件的Table A金额总和
需求概述
需要计算Table A中amount字段的总和,满足以下条件:
dateCreated日期在2022-10-10至2022-10-31之间- 该记录的
phone手机号存在于Table B中,且Table B中对应手机号的is_mobile字段值为0
参考的MySQL查询语句(原示例为计数,实际需改为求和)
Select count(phone) from tableA where date(dateCreated)>='2022-10-10' and date(dateCreated)<='2022-10-31' and phone IN(Select phone from tableB where is_mobile=0)
实现方案(DAX公式)
这里提供两种常用的DAX写法,可根据你的数据模型选择:
方法1:无表关系时使用CALCULATE + CALCULATETABLE
符合条件的金额总和 = CALCULATE( SUM(TableA[amount]), TableA[dateCreated] >= DATE(2022, 10, 10), TableA[dateCreated] <= DATE(2022, 10, 31), TableA[phone] IN CALCULATETABLE(VALUES(TableB[phone]), TableB[is_mobile] = 0) )
方法2:已建立表关系时简化写法
如果Table A和Table B已经通过phone字段建立了一对一/一对多关系,可以用更简洁的公式:
符合条件的金额总和 = CALCULATE( SUM(TableA[amount]), TableA[dateCreated] >= DATE(2022, 10, 10), TableA[dateCreated] <= DATE(2022, 10, 31), RELATED(TableB[is_mobile]) = 0 )
关键提示
- 确保两个表的
phone字段数据类型完全一致(比如都是文本类型),否则会出现匹配失败的情况 - 如果Table B中有重复的
phone记录,使用VALUES(TableB[phone])可以自动去重,避免重复筛选
内容的提问来源于stack exchange,提问作者Salik Ameer
相关产品推荐
相关产品推荐

