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

如何将上年Open at the end值填入本年Beg of year及解决循环依赖

解决DAX循环依赖:实现上年年末值填充至本年年初

问题根源

循环依赖是因为你的度量值形成了闭环:

  • Open at the beg(年初)依赖Open at the end(上年年末)
  • Open at the end依赖Total Inventory
  • Total Inventory又依赖Open at the beg

要解决这个问题,必须打破这个闭环,让年初值的计算不依赖年末值,转而从原始数据(当年新增report in year)和初始值直接推导。

解决方案

步骤1:定义基础度量

首先确保你有原始的当年新增数据(假设字段为report in year),然后定义以下度量:

1. 最早年份

Earliest Year = MIN('Claims Data (2)'[Calendar Year])

2. 初始年初库存

如果最早年份的年初值在数据中已存在,直接提取:

Initial Beg Value = 
CALCULATE(
    SELECTEDVALUE('Claims Data (2)'[Beg of year]),
    'Claims Data (2)'[Calendar Year] = [Earliest Year]
)

如果只有最早年份的年末值(比如示例中2014年年末是94),则反推初始年初值:

Initial Beg Value = 
CALCULATE(
    [Open at the end] - SUM('Claims Data (2)'[report in year]),
    'Claims Data (2)'[Calendar Year] = [Earliest Year]
)

(注:这一步仅用于最早年份,不会触发循环,因为此时还未用年初值计算年末值)

3. 本年年初库存(核心公式)

Open at the beginning of Cal year = 
VAR CurrentYear = SELECTEDVALUE('Claims Data (2)'[Calendar Year])
VAR TotalPriorReports = 
    CALCULATE(
        SUM('Claims Data (2)'[report in year]),
        'Claims Data (2)'[Calendar Year] < CurrentYear
    )
RETURN
    IF(
        CurrentYear = [Earliest Year],
        [Initial Beg Value],
        [Initial Beg Value] + TotalPriorReports
    )

4. 年末库存/总库存

现在可以安全计算总库存和年末值,不会触发循环:

Total Inventory = [Open at the beginning of Cal year] + SUM('Claims Data (2)'[report in year])
Open at the end = [Total Inventory]

为什么这个方案有效

这个方案重构了依赖链:
初始值 → 年初库存 → 当年新增 → 年末库存
完全消除了反向依赖,从原始数据出发逐步推导,彻底避免了循环。

替代简化方案(适用于已知最早年末值)

如果已知最早年份的年末值(比如2014年是94),可以直接用该值作为下一年的初始,后续年份累加当年新增:

Open at the beginning of Cal year = 
VAR CurrentYear = SELECTEDVALUE('Claims Data (2)'[Calendar Year])
VAR EarliestEnd = 94 -- 替换为你实际的最早年末值
RETURN
    IF(
        CurrentYear = [Earliest Year],
        [Initial Beg Value],
        EarliestEnd + 
        CALCULATE(
            SUM('Claims Data (2)'[report in year]),
            'Claims Data (2)'[Calendar Year] > [Earliest Year] && 'Claims Data (2)'[Calendar Year] < CurrentYear
        )
    )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 12:40:18