JSL 条件多个 if 语句比较两列中的值在我的数据表中,我想比较两个不同列中的值并将比较结果放入新列中。 我可以使用公式使其工作,但无法将其转换为 JSL。 我需要下面的公式作为 JSL 脚本。
如果 MHD < MTV * -6 => 0
如果 MHD > MTV * 6 => 0
否则=> 1
这里 MHD 和 MTV 是两个具有连续数值的数据列。 我正在比较每一行的这两列中的值。
我尝试了下面的脚本,但它不起作用。
新列(“P/F”、数字、“标称”、公式(If(:MHD < :MTV * -6, 0, :MHD > :MTV*6, 0, 1)))
任何指导将不胜感激。
回复:JSL 条件多个 if 语句比较两列中的值感谢您的精彩提示。 现在我不必更改使用特殊字符的列标签。回复:JSL 条件多个 if 语句比较两列中的值JSL 将 & 等解释为计算元素,而不是名称的一部分。看一下 :Name() 函数,您可以将其放置在列名周围,以确保 JSL 正确解释列名。
如果您的 MDH 列被命名为 MDH/PQR,JSL 会将该名称解释为将名为 MDH 的变量除以名为 PQR 的变量的数学计算。但如果您将其引用为:
:姓名(“MDH/PQR”)
一切都会很好。
在你的代码中它看起来像
New Column ("P/F", Numeric, "Nominal", Formula(If(:MTV *(-6) < :Name("MDH/PQR") < :MTV * 6,1,0)))回复:JSL 条件多个 if 语句比较两列中的值感谢您的快速响应和解决问题的好主意。 我的脚本现在可以运行了。 我注意到的另一件事是,如果任何列标签有“-”或“&”,那么脚本将无法工作。 一旦这些特殊字符被删除,脚本就可以正常工作。回复:JSL 条件多个 if 语句比较两列中的值谢谢。 这个解决方案也非常有效。回复:JSL 条件多个 if 语句比较两列中的值Formula( If( :MDH < :MTV * -6 | :MDH > :MTV * 6, 0, 1 )
或许?
回复:JSL 条件多个 if 语句比较两列中的值JSL在处理上有一个小问题
:MTV*-6
JSL 可以将 -6 视为减法,而不是负数。因此,更明智的做法是将其引用为
:MTV * (-6)
以确保 JMP 正确解释它。
以下是设置公式以获得所需结果的几种不同方法。
New Column ("P/F", Numeric, "Nominal", Formula(If(:MTV *(-6) < :MDH < :MTV * 6,1,0)))
//or
New Column ("P/F", Numeric, "Nominal", Formula(If(:MTV *(-6) < :MDH | :MDH > :MTV * 6,0,1)))