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

如何在Power BI中按年月拆分并展示缺失付款记录?

在Power BI中实现各年月缺失付款情况的展示

可以通过Power Query或DAX两种方式实现,具体操作如下:


方法一:使用Power Query构建缺失付款数据集

步骤:

  1. 整理客户基础数据:加载Client Table,保留[Client Id]和[Client Name]字段,移除重复项,确保每个客户仅保留一条记录。
  2. 生成唯一年月列表:加载Date Table,添加自定义列提取年月值,公式为:
    = Date.Year([Date]) * 100 + Date.Month([Date])
    
    将该列命名为YearMonth,随后移除重复的YearMonth值,得到所有需统计的年月维度。
  3. 创建客户-年月全组合:将客户表与年月列表进行交叉合并(Power Query编辑器中选择两张表,点击「合并查询」→「交叉合并」),生成所有客户在每个年月的完整组合。
  4. 关联付款数据:为Payment Table添加相同规则的YearMonth列,再将其与上述交叉表合并,匹配条件设为[Client Id]和YearMonth。
  5. 筛选缺失付款记录:添加自定义列标记付款状态:
    = if [Payment Id] is null then "缺失" else "已付款"
    
    筛选出标记为「缺失」的行,或直接保留Payment Id为空的记录,整理后加载到数据模型即可用于可视化。

方法二:使用DAX计算缺失付款

方式1:创建计算表生成缺失记录

  1. 生成客户-年月全组合表:新建计算表,输入DAX公式:
    客户年月全组合 = 
    CROSSJOIN(
        VALUES('Client Table'[Client Id]),
        VALUES('Date Table'[YearMonth]) -- 需先为Date Table添加YearMonth列:YearMonth = YEAR('Date Table'[Date])*100 + MONTH('Date Table'[Date])
    )
    
    再添加计算列关联客户名称:
    Client Name = RELATED('Client Table'[Client Name])
    
  2. 标记付款状态:在计算表中添加计算列:
    付款状态 = 
    VAR CurrentClient = [Client Id]
    VAR CurrentYM = [YearMonth]
    VAR HasPayment = 
        CALCULATE(
            COUNTROWS('Payment Table'),
            'Payment Table'[Client ID] = CurrentClient,
            YEAR('Payment Table'[Payment Date])*100 + MONTH('Payment Table'[Payment Date]) = CurrentYM
        )
    RETURN IF(HasPayment = 0, "缺失", "已付款")
    
  3. 提取缺失记录:可直接创建仅包含缺失付款的计算表:
    缺失付款记录 = 
    FILTER(
        '客户年月全组合',
        [付款状态] = "缺失"
    )
    

方式2:用度量值在报表中直接展示

若无需单独数据集,可创建度量值在矩阵等可视化中直接显示缺失情况:

缺失付款标记 = 
VAR CurrentYM = SELECTEDVALUE('Date Table'[YearMonth])
VAR CurrentClient = SELECTEDVALUE('Client Table'[Client Id])
VAR HasPayment = 
    CALCULATE(
        COUNTROWS('Payment Table'),
        'Payment Table'[Client ID] = CurrentClient,
        YEAR('Payment Table'[Payment Date])*100 + MONTH('Payment Table'[Payment Date]) = CurrentYM
    )
RETURN IF(HasPayment = 0, "缺失", BLANK())

使用矩阵可视化时,行放客户名称、列放年月、值放该度量值,即可直观看到各年月的缺失付款客户。


注意事项

  • 确保Date Table的日期范围覆盖所有需统计的付款周期,若存在早于现有付款日期的应统计周期,需手动调整Date Table的生成范围。
  • 提前建立表间关系:Client Table与Payment Table通过[Client Id]建立一对多关系,Date Table与Payment Table通过[Payment Date]建立关系。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 02:01:14