我在单列中的数据看起来像这样
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显示空白数据。不知道我的逻辑错在哪里。任何帮助表示赞赏。
答案 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: ")))
答案 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)