RE: 在同一列中选择匹配的字符值你好,
我知道我可以利用循环来解决这个问题,但我想知道是否有一个函数/另一种方法可以在 JSL 数据表的一行中查找匹配的字符值?
任何帮助,将不胜感激。
数据混合和清理RE: 在同一列中选择匹配的字符值吉姆提供了一个很好的建议。 这是另一种选择,使用组合列。从用户界面来看,
- 选择要搜索的列,对于下面的示例表,:C1 到:C10
- 从主菜单 > 列 > 实用程序 > 合并列中选择,我使用克拉 (^) 作为分隔符,并将新列称为“搜索”
- 创建一个新列,并创建一个函数;我在这里搜索“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();
然后运行Stack Platform
表==>堆栈
堆叠您想要查找匹配项的所有字符列。还要选择要包含在新数据表中的 RowNum 列。
现在运行摘要平台
表格==>总结
选择名为“数据”的列作为“统计”列,选择“N”作为统计数据,然后选择“RowNum”列作为“组”列。
这将为您提供一个新的数据表,其中 N 行列将指示每行的每个值的匹配数。只需选择仅找到 1 个匹配项的单元格之一,然后右键单击。选择“选择匹配单元格”。选择所有匹配的行后,转到 RowState 列,然后右键单击选定的行之一。选择“删除行”。剩下的是与这些行中的值匹配的所有行。