我试图写一个公式来计算金额,但是如果serviceFee字段有一个值,它将使用该值。
所以
Field1 = Amount
Field2 = ServiceFee
如果ServiceFee具有值,则金额必须等于servicefee
如果有任何ClientType类型匹配,则公式将不会查看ServiceFee
我曾尝试部署它,但是该公式似乎仅执行ServiceFee部分
IF(ClientType.Id = '123456',
Amount- Discount,
IF(ClientType.Id = '7891011',
Amount + 1,
IF(NOT(ISBLANK(ServiceFee)),
Amount = ServiceFee,
)
)
)
答案 0 :(得分:1)
问题是您试图在最后一条语句中为Amount
分配一个值,该值在公式语法中不起作用。它不会编译,因为它实际上被解析为比较语句(返回布尔值)。
相反,首先确定公式应返回什么。如果您有多个客户端ID,请尝试使用CASE
函数。这样,很清楚在每种情况下会发生什么。例如:
CASE(ClientType.Id,
'123456', Amount - Discount,
'7891011', Amount + 1,
IF(ISBLANK(ServiceFee), 0, ServiceFee)
)
最后一个参数是CASE
函数的默认值,如果ClientType.Id
不是先前的值之一,则将对其求值。