RE:在同一列中选择匹配的字符值你好,
我知道我可以使用循环来解决这个问题,但我想知道是否有一个函数/另一种方法可以在 JSL 的数据表的一行中找到匹配的字符值?
任何帮助,将不胜感激。
脚本RE:在同一列中选择匹配的字符值吉姆提供了一个很好的建议。 这是另一种选择,它使用组合列。从用户界面,
- 选择要搜索的列,对于下面的示例表,:C1 到 :C10
- 从 Main Menu > Cols > Utilities > Combine Columns 选择,我使用克拉 (^) 作为分隔符并将新列命名为“搜索”
- 创建一个新列,并创建一个函数;我在这里搜索“y”。如果你想要一个计数使用公式。 注意 Words(:Search,"^") 创建一个列值列表,Loc 返回与搜索字符串 ("y") 匹配的位置,N Row 是计数
N Row( Loc( Words( :Search, "^" ), "y" ) )
- 如果您想知道哪些列(我在这里搜索“y”),请使用下面的公式。 它返回一个向量,其中的列包含搜索字符串。例如,[1,5,7] 或 [](如果没有匹配项)。
Loc( Words( :Search, "^" ), "y" )
附件是创建示例表、创建组合列以及为 Count 和 loc 创建两个公式列的脚本
RE:在同一列中选择匹配的字符值创建一个名为 RowNum 的列并为其提供公式
Row();
然后运行堆栈平台
表==>堆栈
堆叠所有要查找匹配项的字符列。还要选择要包含在新数据表中的列 RowNum。
现在运行摘要平台
表格==>总结
选择名为 Data 的列作为 Statistics 列,选择“N”作为统计数据,然后选择 RowNum 列作为 Group 列。
这将为您提供一个新的数据表,其中 N 行列将指示每行每个值的匹配数。只需选择仅找到 1 个匹配项的单元格之一,然后右键单击。选择“选择匹配的单元格”。选择所有匹配的行后,转到 RowState 列,然后右键单击其中一个选定的行。选择“删除行”。剩下的是所有与这些行中的值匹配的行。