如何根据字符值而不是数值提取列文本?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />您好 JMP 社区,
我在标题为描述的列中有文本,如下所示:
描述栏
第 1 行:软件问题:系统软件;没有反应
第 2 行:软件问题:系统软件;没有反应
第 3 行:电子问题:电源;回应 1
第 4 行:计算机和用户界面问题:系统软件;回应 2
好的,所以我想把这个专栏中的文字根据标点符号分开。因此,在一个新列中,我想要在冒号“:”之前显示的文本,而在另一列中,我想要在分号和冒号“:”和“;”之间的文本:
所以我应该得到:
描述 列 B 列 C 列
第 1 行:软件问题:系统软件;无响应 软件问题 系统软件
我创建了这些新列,并应用了一个公式,我尝试使用左/右字符函数(我将描述列称为文本字段)。但是,所有字符函数的长度都基于数值。如何使用左/右字符功能说
“正确的(描述栏, ":")" 这样我就得到了 ":" 之前的所有文本??
谢谢你的帮助,
-莎拉
Re: 如何根据字符值而不是数值来提取列文本?谢谢! 两个版本都完全符合我的要求
Re: 如何根据字符值而不是数值来提取列文本?这里的另一种方法是使用 Word() 函数。
B列的公式:
Word(1, :描述栏, ":;" )
C列的公式:
Trim( Word( 2, :Description Column, ":;" ) )
Re: 如何根据字符值而不是数值来提取列文本?这将满足您的需求。诀窍是使用 contains 和 substr 来获取您想要的确切子字符串。
dt =新表( “问题” ,
添加行( 4 ) ,
新列( “描述” ,
特点,
标称,
设定值(
{ “软件问题:系统软件;无响应” ,
“软件问题:系统软件;无响应” ,
“电子问题:电源;响应 1” ,
“计算机和用户界面问题:系统软件;响应 2” }
)
)
) ;
dt <<新专栏( “B栏” ,特点,标称,
公式(
冒号位置=包含( :描述, “:” ) ;
子串( :描述, 1 ,冒号位置- 1 ) ;
)
) ;
dt <<新专栏( “C列” ,特点,标称,
公式(
冒号位置=包含( :描述, “:” ) ;
semi_pos =包含( :描述, “;” ) ;
子串( :描述,冒号位置+ 2 , semi_pos -冒号位置- 2 ) ;
)
) ;