Power BI中构建未付交易条形图及月末未付金额报表的DAX方案咨询
Power BI 实现每月末未付交易金额的方案
一、先搭建数据模型
必须创建一张独立日期表,并标记为Power BI的日期表,这是实现时间筛选的核心基础。用DAX生成的脚本如下:
日期表 = ADDCOLUMNS ( CALENDARAUTO(), "年月", FORMAT([Date], "YYYYMM"), "月末日期", EOMONTH([Date], 0) )
生成后,将交易表的created_date字段与日期表的Date字段建立单向关系。
二、核心DAX度量值
直接编写度量值计算每月末未付金额,完全匹配你给出的计算逻辑:
月末未付金额 = VAR 目标月末日期 = MAX('日期表'[月末日期]) RETURN CALCULATE ( SUM('交易表'[金额]), FILTER ( ALL('交易表'), '交易表'[created_date] <= 目标月末日期 && (ISBLANK('交易表'[completed_date]) || '交易表'[completed_date] > 目标月末日期) ) )
逻辑说明:
筛选出所有创建时间早于等于目标月末,且要么未付款(completed_date为空),要么付款时间晚于目标月末的交易,对这些交易的金额求和:
- 202302月末:仅2月创建的未付10美元符合条件,总和为10。
- 202303月末:2月的10美元付款时间在4月(晚于3月末),加上3月新增的100美元未付款,总和为110。
- 202304月末:2月的10美元付款时间为4月(不晚于4月末)被排除,只剩3月的100美元未付款,总和为100。
三、可视化与筛选设置
- 条形图:将日期表的
年月(或月末日期)拖到X轴,月末未付金额拖到Y轴,即可生成各月末未付金额的条形图。 - 筛选功能:添加日期表的
年月切片器,选择对应月份,就能直接查看该月末的未付金额。
备选:Power Query数据转换方案
如果偏好提前计算好数据,也可以用Power Query生成固定的月末未付金额表:
- 生成包含所有目标月末日期的列表。
- 对每个月末日期,筛选交易表中符合条件的记录并求和。
但这种方法灵活性不如DAX,无法动态调整筛选范围,更适合固定报表需求。
内容的提问来源于stack exchange,提问作者Ladislao Csulak
相关产品推荐
相关产品推荐

