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

NetSuite已保存搜索:按公式实现至上月末销售额同比对比

NetSuite已保存搜索:去年/今年至上月末销售额对比公式修复

错误原因分析

你调整后的公式核心问题是**BETWEEN关键字用法错误**:BETWEEN需要两个具体的日期值作为范围边界,而你在其中放入了TO_DATE({TODAY},'YYYY')=TO_CHAR({shipdate},'YYYY')这类逻辑判断语句,直接导致语法无效。

正确公式实现

以下是优化后的公式,合并了重复的CASE判断,同时修正了退货类单据的金额冲减逻辑(退货/贷项通知单金额需取负值,避免销售额计算失真)。

列1:去年至上月末销售额(公式数值)

CASE 
  -- 发票、销售订单用发货日期判断
  WHEN ({type} IN ('Invoice', 'Sales Order') 
        AND {shipdate} BETWEEN ADD_MONTHS(TRUNC({TODAY}, 'YEAR'), -12) 
        AND ADD_MONTHS(TRUNC({TODAY}, 'MONTH'), -13))
       -- 退货授权、贷项通知单用交易日期判断
       OR ({type} IN ('Return Authorization', 'Credit Memo') 
           AND {trandate} BETWEEN ADD_MONTHS(TRUNC({TODAY}, 'YEAR'), -12) 
           AND ADD_MONTHS(TRUNC({TODAY}, 'MONTH'), -13))
  THEN {AMOUNT} * CASE WHEN {type} IN ('Return Authorization', 'Credit Memo') THEN -1 ELSE 1 END
  ELSE 0
END

列2:今年至上月末销售额(公式数值)

CASE 
  -- 发票、销售订单用发货日期判断
  WHEN ({type} IN ('Invoice', 'Sales Order') 
        AND {shipdate} BETWEEN TRUNC({TODAY}, 'YEAR') 
        AND ADD_MONTHS(TRUNC({TODAY}, 'MONTH'), -1))
       -- 退货授权、贷项通知单用交易日期判断
       OR ({type} IN ('Return Authorization', 'Credit Memo') 
           AND {trandate} BETWEEN TRUNC({TODAY}, 'YEAR') 
           AND ADD_MONTHS(TRUNC({TODAY}, 'MONTH'), -1))
  THEN {AMOUNT} * CASE WHEN {type} IN ('Return Authorization', 'Credit Memo') THEN -1 ELSE 1 END
  ELSE 0
END

公式逻辑说明

  • TRUNC({TODAY}, 'YEAR'):获取当年1月1日
  • ADD_MONTHS(TRUNC({TODAY}, 'MONTH'), -1):获取上月最后一天(即至上月末的日期)
  • ADD_MONTHS(..., -12):将日期范围偏移到去年同期
  • 退货类单据乘以-1:因为这类单据是冲减销售额,避免把退货金额计入正向销售额

已保存搜索配置步骤

  1. 在NetSuite已保存搜索中添加两个**公式(数值)**类型的列
  2. 分别将上述两个公式粘贴到对应列的公式编辑器中
  3. 给列设置清晰的名称(如“去年至上月末销售额”、“今年至上月末销售额”)
  4. 在搜索结果的“结果”标签页中,对这两列设置汇总类型为总和,即可得到累计销售额

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 08:50:31