求助:如何在Power BI中实现多条件SUMIFS计算列
Power BI 多条件SUMIFS计算列实现方案
需求说明
需要在Power BI中创建两个带多条件的计算列:
- 「每月每笔费用」:以
Charge Bucket、Type、Delivery Month为条件,对Sum of Charge Amount列求和 - 「每月集装箱数」:条件同上,对
Number of containers列求和
Excel中实现的SUMIFS公式
对应Excel中的实现公式如下:
「每月每笔费用」公式
=SUMIFS($D$2:$D$11,$G$2:$G$11,G2,$B$2:$B$11,B2,$C$2:$C$11,C2)
「每月集装箱数」公式
=SUMIFS($E$2:$E$11,$G$2:$G$11,G2,$B$2:$B$11,B2,$C$2:$C$11,C2)
现有尝试的问题
此前尝试单条件DAX公式仅返回当前行的集装箱数,公式如下:
SUMIF Container Per Month = VAR vRowShippingMonth = 'Invoice Charges'[Shipping month] Return CALCULATE( SUM('Invoice Charges'[Number of Containers]), 'Invoice Charges'[Shipping month] = vRowShippingMonth)
需要扩展为多条件筛选。
Power BI DAX解决方案
在DAX的CALCULATE函数中,只需在筛选参数部分添加多个条件,用逗号分隔即可实现多条件求和,对应Excel SUMIFS的逻辑。
1. 「每月每笔费用」计算列DAX公式
每月每笔费用 = CALCULATE( SUM('Invoice Charges'[Sum of Charge Amount]), 'Invoice Charges'[Charge Bucket] = EARLIER('Invoice Charges'[Charge Bucket]), 'Invoice Charges'[Type] = EARLIER('Invoice Charges'[Type]), 'Invoice Charges'[Delivery Month] = EARLIER('Invoice Charges'[Delivery Month]) )
2. 「每月集装箱数」计算列DAX公式
每月集装箱数 = CALCULATE( SUM('Invoice Charges'[Number of containers]), 'Invoice Charges'[Charge Bucket] = EARLIER('Invoice Charges'[Charge Bucket]), 'Invoice Charges'[Type] = EARLIER('Invoice Charges'[Type]), 'Invoice Charges'[Delivery Month] = EARLIER('Invoice Charges'[Delivery Month]) )
说明:EARLIER函数用于引用当前行上下文的列值,相当于Excel中相对引用的单元格(如G2、B2),确保筛选时匹配当前行的对应条件值。
示例数据表格
| Row Labels | Charge Bucket | Type | Sum of Charge Amount | Number of containers | Per Container | Delivery Month | Per Charge Per Month | Container Per Month | Weighted Average Cost |
|---|---|---|---|---|---|---|---|---|---|
| ID1 | Ancillary- Non Discretionary | 40 | 5,805.00 | 9 | 645.00 | 4/1/2021 | 5,805.00 | 9 | 645.00 |
| ID2 | Base Charge | 40 | 12290 | 3 | 4,096.67 | 4/1/2021 | 12,290.00 | 3 | 4,096.67 |
| ID3 | Origin Charge | 40 | 1,957.00 | 3 | 652.33 | 4/1/2021 | 1,957.00 | 3 | 652.33 |
| ID4 | Ancillary- Non Discretionary | 40 | 867.68 | 4 | 216.92 | 5/1/2021 | 867.68 | 4 | 216.92 |
| ID5 | Base Charge | 40 | 10805 | 2 | 5,402.50 | 5/1/2021 | 10,805.00 | 2 | 5,402.50 |
| ID6 | Origin Charge | 40 | 1351 | 2 | 675.50 | 5/1/2021 | 1,351.00 | 2 | 675.50 |
| ID7 | Ancillary- Non Discretionary | 40 | 1,790.00 | 2 | 895.00 | 6/1/2021 | 1,790.00 | 2 | 895.00 |
| ID8 | Base Charge | 40 | 20101 | 2 | 10,050.50 | 6/1/2021 | 40,301.00 | 4 | 10,075.25 |
| ID9 | Origin Charge | 40 | 1,421.50 | 2 | 710.75 | 6/1/2021 | 1,421.50 | 2 | 710.75 |
| ID10 | Base Charge | 40 | 20200 | 2 | 10,100.00 | 6/1/2021 | 40,301.00 | 4 | 10,075.25 |
内容的提问来源于stack exchange,提问作者Spen820
相关产品推荐
相关产品推荐

