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

如何在Pivot area chart中添加月度里程限制线?

解决Power BI数据透视图中添加月度里程限制线的问题

嘿,我来帮你搞定这个在数据透视面积图里加里程额度限制线的难题!先理下我的场景:
我租了一辆汽车,平时既自己开也对外出租,每月有固定的行驶额度——3月因为是中旬提车,额度只有1000km,其他月份都是2000km。我已经做了一个Pivot Area Chart来跟踪自用和出租的累计里程,基础数据表格如下:

DateRented mileageOwn mileage
23/03-18315117
07-04-18255888
07/04-183490
13/04-181140
21/04-18246113
28/04-1812530
01/05-1812530

我本来想新增一张允许里程表,把它作为图表线条加进去,表格内容是这样的:

DateAllowed mileage
01/03-181000
01-04-182000
01/05-182000
01/06-182000
01/07-182000
01/08-182000
01/09-182000
01/10-182000
01-11-182000
01/12-182000
01/01-192000
01/02-192000
01/03-191000

但问题来了,Pivot Chart没办法关联这两张表格。我考虑用插值度量值来解决,但不知道具体怎么实现,想请大家给个方案。另外,我之前还在Stack Overflow上问过关于DAX中累计求和的问题。


具体解决方案(用DAX度量值实现)

要解决这个问题,核心是通过DAX度量值直接计算出对应日期的累计允许里程,不需要单独的表格关联,步骤如下:

  1. 建立日期表
    首先确保你的模型里有一张完整的日期表(可以用CALENDAR()函数生成),并且和你的里程数据表格的Date字段建立关系。如果还没有日期表,用下面的DAX创建:

    Date Table = CALENDAR(DATE(2018,3,1), DATE(2019,3,31))
    
  2. 计算累计行驶里程的度量值
    先确认你已经有累计里程的度量(如果之前的累计求和有问题,可以用这个):

    Cumulative Total Mileage = 
    CALCULATE(
        SUM('Mileage Data'[Rented mileage]) + SUM('Mileage Data'[Own mileage]),
        FILTER(
            ALL('Date Table'[Date]),
            'Date Table'[Date] <= MAX('Date Table'[Date])
        )
    )
    
  3. 创建允许里程的插值度量值
    这个度量会根据当前日期所在的月份,计算到该日期为止的累计允许里程,自动处理3月的特殊情况:

    Cumulative Allowed Mileage = 
    VAR CurrentDate = MAX('Date Table'[Date])
    VAR CurrentMonth = MONTH(CurrentDate)
    VAR CurrentYear = YEAR(CurrentDate)
    VAR MonthlyAllowed = 
        IF(
            (CurrentYear = 2018 && CurrentMonth = 3) || (CurrentYear = 2019 && CurrentMonth = 3),
            1000,
            2000
        )
    VAR DaysInMonth = DAY(EOMONTH(CurrentDate, 0))
    VAR DaysPassed = DAY(CurrentDate)
    VAR MonthlyProRata = MonthlyAllowed * (DaysPassed / DaysInMonth)
    VAR PreviousMonthsAllowed = 
        CALCULATE(
            SUMX(
                DISTINCT(DATEADD('Date Table'[Date], -1, MONTH)),
                IF(
                    (YEAR([Date]) = 2018 && MONTH([Date]) = 3) || (YEAR([Date]) = 2019 && MONTH([Date]) = 3),
                    1000,
                    2000
                )
            ),
            FILTER(
                ALL('Date Table'[Date]),
                'Date Table'[Date] < DATE(CurrentYear, CurrentMonth, 1)
            )
        )
    RETURN
        IF(ISBLANK(PreviousMonthsAllowed), MonthlyProRata, PreviousMonthsAllowed + MonthlyProRata)
    
  4. 添加到图表
    把这个Cumulative Allowed Mileage度量值添加到你的Pivot Area Chart中,设置为折线类型,就能作为里程限制线展示,实时显示到当前日期为止的累计允许额度,完美匹配你的累计行驶里程啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:28:08