点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
尊敬的专家,
我正在尝试使用下面的" if"语句和变量" v_message(5)"创建变量" v_message(5)",但未显示值" Red Data", 尝试了如下所述的不同公式。
Varibale:v_message(5)-
1)= If([v_formula] = 18哪里([[Nm] =" 3003收到的Doz I/C孵化蛋"")和[v_formula] = 20哪里([Nm] =" 3004 Doz I/C孵化蛋 收到$"))),然后是"红色数据",其中([Nm] =" 3003已收到Doz I/C孵化蛋")
2)= If([v_formula] = 18哪里([[Nm] =" 3003收到Doz I/C孵化蛋"")和[v_formula] = 20哪里([Nm] =" 3004 Doz I/C孵化蛋 收到$"))),然后是"红色数据",其中([Nm] =" 3003已收到Doz I/C孵化蛋")
3)= If([v_formula]哪里([Nm] =" 3003收到的Doz I/C孵化蛋"")= 18 And [v_formula]哪里([Nm] =" 3004收到的Doz I/C孵化蛋$ ")= 20)然后是"红色数据",其中([Nm] =" 3003已收到Doz I/C孵化蛋")
我可以知道您的建议吗? 我们怎样才能做到这一点?
嗨,Madhu,
您可以使用以下三个定义之一完成所需的结果:
= If([v_formula] InList(18; 20)And [Nm] =" 3003已收到Doz I/C孵化蛋")然后是" RedData"
=如果(([[v_formula] = 18并且[Nm] =" 3003收到的Doz I/C孵化蛋"")或([[v_formula] = 20并且[Nm] =" 3003所收到的Doz I/C孵化蛋"))然后 " RedData"
=如果([v_formula] InList(18; 20)和[Nm] =" 3003收到Doz I/C孵化蛋")然后是" RedData"
< img src="/storage/temp/1689621-hatched-eggs.png">
我建议您参考使用Web Intelligence文档中的函数,公式和计算,以获取有关定义If Then Else语句的更多信息。 您尝试的变量定义很可能会引发#COMPUTATION错误。 当您使用逻辑运算符正确地,您正在使表达式的上下文复杂化。
亲切的问候,
汤姆
嗨,Madhu,
对1和3中重复项表示歉意。 复制并粘贴错误。
如果您创建一个仅评估条件的测试变量,即[test] =(([[Nm] =" 3003 收到Doz I/C孵化蛋"并且[v_formula] = 18)并且([Nm] =" 3004收到Doz I/C孵化蛋$"并且[v_formula] = 20))您会注意到它将 为数据的每一行返回0(不正确),即,您不能在同一条语句中同时满足这两个条件。
再次阅读您的要求,我了解到您只希望将"红色数据"标记为"已收到3003个Doz I/C孵化蛋"。 然后,为什么在条件中包括"收到的3004个Doz I/C孵化蛋"及其对应的v_formula值? 我认为这是不必要的。 你可以解释吗? 我假设您希望在数据的前两行中为true标志,但仅对顶部行("已收到3003个Doz I/C孵化蛋")使用"红色数据"标志。 您只能使用Or运算符来实现此目的。
如果在查询级别定义相同的过滤条件,则会注意到由于查询条件相互抵消而返回了空行。/p>
亲切的问候
汤姆
嗨,汤姆,
谢谢您的解决方案。看起来第一个选项和第三个选项是相同的, 看不到区别。
当您使用"或"时,您提供的以下第二个选项仅满足以下条件之一,但是我们需要同时满足两个条件。
= If(([[v_formula] = 18 And [Nm] =" 3003 Doz I/C孵化器收到的鸡蛋""))
或([v_formula] = 20 And [Nm] =" 3003 Doz I/C Hatch 收到鸡蛋"))
然后" RedData"
以下两个条件必须满足才能看到"红色数据"而不仅仅是一个。
= If([v_formula] = 18其中([Nm] =" 3003收到Doz I/C孵化蛋"")
并且[v_formula] = 20其中([Nm] =" 3004 Doz I/C孵化 收到的鸡蛋$"))
然后"红色数据"在哪里([Nm] =" 3003收到的Doz I/C孵化鸡蛋")
嗨,汤姆,
我当时想您可能有第三个选择,并且您提到了"遵循三个定义"。
是的,您是正确的,当同时满足以下两个条件时,我希望将"红色数据"标记为"已收到3003个Doz I/C孵化蛋"。
= If([v_formula] = 18其中([Nm] =" 3003收到Doz I/C孵化蛋"")
并且[v_formula] = 20其中([Nm] =" 3004 Doz I/C孵化 收到的鸡蛋$"))
然后"红色数据"在哪里([Nm] =" 3003收到的Doz I/C孵化鸡蛋")
例如:如果[v_formula]的值更改为表中该列的"或"之后的 21,22,23,则不应使用以下公式显示" RedData" 上面的是20 ,但是当我们使用20以外的任何数字表示" RedData"不起作用。 仅当两个条件都满足时,它才应该显示/工作,但在这种情况下,由于我们使用的是"或",因此仅考虑其中一个。
=如果(([[v_formula] = 18 And [Nm] =" 3003收到的Doz I/C孵化蛋,")")
Or([[v_formula] = 21 和[Nm] = "收到3004个Doz I/C孵化蛋$")))
然后" RedData"
我希望这可以澄清您的问题。
关于
Madhu
嗨,汤姆,
有没有一种方法可以满足两个条件,而不是同一条语句中的任何其他方法?
关于
Madhu
嗨,汤姆,
下面的公式如何?
=如果[Nmrc] = 0哪里([Nm] =" 3003收到Doz I/C孵化蛋")然后(If [Nmrc] = 0哪里([Nm] =" 3004收到Doz I/C孵化蛋" $$")然后是"红色数据")
关于
一周热门 更多>