如何在列字符 - 标称数据类型中查找特定文本(单词)?你好,
我想获得一些帮助来查找可能位于包含文本的列中的特定字符串(实际上是 2 个字符串,例如“JMP1”和“JMP2”),当我们向下移动该列时,接下来会有一个公式列如果找到它,则标记为“JMP1”或“JMP2”,否则标记为“NA”。
一些注意事项:
1-“JMP1”或“JMP2”可以位于第 1 列文本中的任何位置
2-“JMP1”和“JMP2”未包含在第 1 列的同一文本中
所以在我看来,公式列(第 2 列 - 标签列)将是这样的:
如果(第 1 列包含“JMP1”,则第 2 列 =“JMP1”,否则(如果第 1 列包含“JMP2”,则第 2 列 =“JMP2”,否则第 2 列 =“NA”));
我查阅了 Match 函数,但对多个参数和表达式有点困惑。 也许我也没有走上正确的道路,因此我需要建议
如果有人可以分享他们的想法(最好通过公式区域,但也愿意通过 JSL 接受建议),那就太好了。
谢谢,
瓦斯科
回复:如何在列字符 - 标称数据类型中查找特定文本(单词)?啊,我看到了混乱。 因此,由于我们使用了您在 contains 函数中查找的完整字符串,因此我们得到的字符串要么是“1”,因为字符串从位置 1 开始,要么是 0,因为字符串没有从任何位置开始。 这在 If 语句中起作用。 如果我们使用 Contains(:column, "P") ,那么对于具有 JMPx 值的任何行,它都会返回“3”,因为 P 位于第三个位置。 我没有想到(或真正知道)这种细微差别,因为我通常使用包含函数,就像您试图做的那样……是否存在某些东西。 正则表达式解决方案更加复杂,对于要在不断变化的数据中重复使用的问题来说,这是一个很好的解决方案。回复:如何在列字符 - 标称数据类型中查找特定文本(单词)?你好@vince_faller ,
我必须承认,目前您的建议对我来说有点太先进了。不过,还是谢谢您的意见:)
我真的很喜欢凯伦针对我的问题提出的简单建议。
问候,
瓦斯科
回复:如何在列字符 - 标称数据类型中查找特定文本(单词)?你好@凯伦C ,
谢谢,它成功了!简单明了:)
我实际上查看了字符函数帮助中的包含函数,但对描述感到困惑,因为它说它将检索“数字位置”。 您的解决方案与我在帖子中提到的差不多,只需使用 contains 函数转换为实际的 JMP 公式即可。
干杯,
瓦斯科
回复:如何在列字符 - 标称数据类型中查找特定文本(单词)?正则表达式确实很强大并且在很多语言中都有使用。 尽管这确实很难理解。
Names default to here(1);
dt = new table("Example",
New Column("JMPs", character, <<SET values=""></SET>回复:如何在列字符 - 标称数据类型中查找特定文本(单词)?If( Contains( :name, "JA" ),
"JA",
If( Contains( :name, "MA" ),
"MA",
"NA"
)
)
我想你就在那儿。 JMP 有一个名为 contains 的字符函数。 您可以将其用于大类示例数据文件,如上所示。 请参阅字符函数的帮助:字符函数帮助