在Tableau中提取两个单词之间的单词

时间:2018-07-24 11:18:05

标签: tableau calculation

我在单列中的数据看起来像这样

Environment: PROD_A
JobName: MY JOB NAME 1
MemName: Some_Script_names

我的目的是创建一个获取JobName的计算字段。 在上面的示例中。输出应为 MY_JOB_NAME_1

这是我在Tableau中的代码-

MID([Description],FIND([Description],"JobName: ")+9,
FIND([Description],"MemName: ")-FIND([Description],"JobName: ")-9)

上面的逻辑与下面的excel函数相同。它基本上会找到第一个单词和最后一个单词,然后从中选择一个。

=MID(A1,SEARCH("JobName: ",A1)+9,SEARCH("MemName",A1)-SEARCH("JobName: ",A1)-9)

问题- Tableau显示空白数据。不知道我的逻辑错在哪里。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:1)

我看到您评论说文本在一个单元格中而不是您所写的一列中。

这将找到JobName并使用该位置加上其长度作为起点,然后找到MemName作为终点(并计算它们之间的字符数)

=MID(A1,FIND("JobName: ",A1)+LEN("JobName: "),FIND("MemName",A1,FIND("JobName: ",A1)+LEN("JobName: ")+1)-(FIND("JobName: ",A1)+Len("JobName: ")))

enter image description here

答案 1 :(得分:1)

您也许可以使用REGEX函数(取决于您的数据源)。试试这个:REGEXP_EXTRACT([Data],'JobName:(。*)')

答案 2 :(得分:0)

以下表格计算有效,它假定MY_JOB_NAME_1和“ MemName:”之后没有空格。

MID([Text], 
FIND([Text],'JobName: ')+10, 
FIND( 
MID([Text], 
FIND([Text],'JobName: ')+10)," ")-9)