除负数时使用绝对值

问题描述 投票:0回答:2

我有一个保存交易的搜索,当交易类型为现金销售和(现金退款或贷项通知单)时,我有多个公式列来显示按项目分组的数量。我现在正尝试添加另一个公式列,以使用以下公式将退货数量除以销售数量,但收到错误消息“错误:可能除以零”,我相信问题是NetSuite引用(-)负退货数量,并且我需要弄清楚如何通过使用不带(-)负数的绝对值来计算此公式。我试图起诉“保存的搜索”绝对值函数,但随后整个搜索出错。通过case语句表达式可以做到吗?

公式:{type} ='现金退款'或{type} ='贷项通知单'然后{数量} ELSE 0 END /({type} ='现金销售'或{type} ='发票'THEN {数量}的情况ELSE 0 END)

switch-statement netsuite saved-searches
2个回答
1
投票

如果将除数包装在NULLIF()函数中,通常可以避免被零除的问题:

Case when {type} = 'Cash Refund' or {type} = 'Credit Memo' THEN {quantity} ELSE 0 END/NULLIF((Case when {type} = 'Cash Sale' or {type} = 'Invoice' THEN {quantity} ELSE 0 END), 0)

0
投票

使用ABS()将负值转换为正值。

[ABS(-4)返回4。

尝试一下,ABS(return_qty)/ ABS(sales_qty)

并使用Nullif(,)避免被零误差除法。

© www.soinside.com 2019 - 2024. All rights reserved.