返回决策大地图

报价模型循环引用与表格设计审计

审计日期:2026-07-06

审计对象:

  1. F:\Documents\Codex\大宗矿产品报价系统\乍得钨矿锑矿分金属计价_公共物流报价系统V2.xlsx
  2. F:\Documents\GitHub\Critical-Minerals-Trading-OS\GCTS_Metals_Pricing_Engine_V1.xlsx
  3. 1. 循环引用结论

    使用公式依赖图检查后,两个文件当前版本都没有检测到真实循环引用。

    文件 公式数量 直接自引用 依赖环路 结论
    原始V2报价系统 158 0 0 未发现循环引用
    GCTS V1报价引擎 345 0 0 未发现循环引用

    同时检查了工作簿内部计算链:

    文件 xl/calcChain.xml 计算属性
    原始V2报价系统 不存在 calcPr
    GCTS V1报价引擎 不存在 fullCalcOnLoad=1

    因此,如果Excel打开时仍提示循环引用,较大概率来自:

    1. 打开的是修正前的旧版 GCTS_Metals_Pricing_Engine_V1.xlsx
    2. Excel同时打开了另一个仍有循环引用的工作簿。
    3. Excel保留了上一次会话的循环引用提示。
    4. 文件曾经打开过含自引用公式的版本,未完全关闭Excel进程后再次打开。
    5. 2. 已修正的问题

      新版GCTS V1报价引擎早期版本中,模型表曾出现以下错误:

      Margin / DMT = B28 / B8
      Gross Margin % = B28 / B21
      Recommended Market = IF(B29>D29,...)

      其中 B28 = B28 / B8 是典型自引用,会触发循环引用。

      已修正为:

      Net Margin = Sales Revenue - Total Cost
      Margin / DMT = Net Margin / DMT_Qty
      Gross Margin % = Net Margin / Sales Revenue
      Recommended Market = IF(International Margin/DMT > Domestic Margin/DMT USD, "International", "Domestic")

      WO3_Model 为例,当前正确公式为:

      B27 = B21 - B26
      B28 = B27 / B8
      B29 = B27 / B21
      B30 = IF(B28>D28,"International","Domestic")

      3. 原始V2文件的表格设计问题

      原始V2文件公式没有形成循环,但有几类结构性问题。

      3.1 输入、计算、敏感性分析混在同一张表

      Tungsten_WO3Antimony_Sb 中,左侧是主模型,右侧又放了品位、Payability、收入、毛利敏感性表。这个设计可以快速查看情景,但容易让维护者误以为右侧表格也参与主模型。

      建议:未来把敏感性分析独立到 SensitivityScenario_Analysis 工作表。

      3.2 物流表存在费用项,但没有全部进入主模型

      Logistics_Common 中列出了:

      Marine Insurance
      Banking / LC / Remittance
      Contingency

      但原始V2金属模型主要读取:

      Total USD/DMT
      Total Fixed USD/lot

      也就是说,部分 %货值%成本 类费用没有完整进入主模型。这不是循环引用问题,但会低估总成本。

      建议:新版模型已增加:

      Value Based Fees = Sales Revenue × Total % Value
      Contingency = Cost Base × Total % Cost

      3.3 缺少湿吨、水分、干吨转换

      原始V2直接以DMT作为数量输入。真实矿产品贸易中,WMT、Moisture和DMT必须分开:

      DMT = WMT × (1 - Moisture)

      建议:新版模型已把 WMT/Moisture/DMT 放入每个矿种模型。

      3.4 国内销售和国际销售单位混杂

      原始V2同时比较国际USD和国内RMB,逻辑方向正确,但需要始终保留一个统一USD口径用于推荐市场,否则很容易拿 RMB/DMT 和 USD/DMT 直接比较。

      建议:新版模型增加 Domestic USD 列,市场推荐只比较 USD口径的 Margin/DMT。

      3.5 上游报价口径需要更清楚

      原始V2使用 Upstream_FOB_A_USD_DMT,但不同项目中上游可能是:

      Mine gate
      Warehouse
      FOB Douala
      CFR/CIF buyer port

      如果上游报价口径变化,物流费用是否应加入或扣除也会变化。

      建议:未来在 Commodity_Config 或交易输入页增加:

      Purchase Incoterms
      Sales Incoterms
      Logistics Scope

      4. GCTS V1文件的剩余设计风险

      当前GCTS V1已经修正循环引用,但仍是V1级模型,不是最终版。

      后续建议继续优化:

      1. 增加 Scenario_Analysis,把敏感性分析从主模型拆出去。
      2. 增加 Incoterms_Config,避免FOB、CFR、CIF成本重复或遗漏。
      3. 增加 Byproduct_Credits,尤其用于铜精矿、铅锌、锡钨伴生矿。
      4. 增加 TC_RC,尤其用于铜精矿真实冶炼报价。
      5. 增加 Assay_Adjustment,处理装船样与到港复检差异。
      6. 6. 增加 Data_Validation 下拉框,限制Enabled、Commodity、Formula Type等字段。

        5. 建议操作

        1. 关闭所有已打开的Excel窗口。
        2. 重新打开最新文件:
        3. F:\Documents\GitHub\Critical-Minerals-Trading-OS\GCTS_Metals_Pricing_Engine_V1.xlsx
          1. 如果仍提示循环引用,在Excel中查看:
          2. Formulas -> Error Checking -> Circular References
            1. 记录Excel显示的具体单元格地址,再回填到本审计报告。