You need to enable JavaScript to run this app. MDX计算库存周转率时如何过滤无COGS值的商品?
优惠活动
大模型
产品
解决方案
定价
更多

MDX计算库存周转率时如何过滤无COGS值的商品?

库存周转率MDX计算逻辑调整实现

核心调整方向

保留原有“近3个月实际COGS汇总乘4”的年化计算分子逻辑,仅对分母的SOH统计范围新增过滤规则:

  • 仅纳入近3个月内存在有效COGS记录的商品对应的SOH值
  • 直接排除近3个月无任何COGS记录的商品(如示例中的商品C),避免这类商品的库存值干扰周转率计算结果

实际计算效果(对应给定示例数据)

调整前后的计算差异清晰可验:

  • 调整前旧逻辑:将无COGS的商品C的20单位SOH计入分母,计算值为(20+40)*4/(10+15+20)≈5.33,结果被无销售贡献的商品拉低
  • 调整后新逻辑:直接剔除近3个月无COGS的商品C,计算值为(20+40)*4/(10+15)=9.6,完全匹配目标统计口径

可直接嵌入BI工具的调整后MDX代码

代码完全沿用原代码的上下文引用规则,不需要额外调整维度路径,直接替换原有分母部分即可运行:

// 分子部分和原代码完全一致,无需改动
((SUM({.lag(3):.lag(1)}, ([Type].[Type].[Actual], [Measures].[Cogs]))) * 4)
/
(
    Sum(
        Filter(
            // 自动捕获当前商品维度展示层级的所有成员,适配任意层级的计算场景
            [Item].CurrentMember.Level.Members,
            // 过滤条件:近3个月时间范围内存在非空COGS值(即有有效销售成本记录)
            Not IsEmpty(
                ([Type].[Type].[Actual], [Measures].[Cogs], {.lag(3):.lag(1)})
            )
        ),
        // 对过滤后的商品集合汇总实际SOH值,作为计算分母
        ([Type].[Type].[Actual], [Measures].[SOH])
    )
)

落地注意点

  • 过滤判断使用 IsEmpty 识别无COGS商品,不要简单用COGS>0做判断:近3个月COGS为0的商品是有系统记录的(只是当期未产生销售成本),不属于需要排除的范围,二者逻辑不能混同
  • 代码内的时间范围引用和原代码完全一致,自动适配BI工具的当前时间上下文,不需要额外调整维度引用
  • 原代码中SOH表达式后遗留的多余逗号属于无效语法,替换时会自动清理,不会出现运行报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 10:54:03