【问题标题】:Extract word between two words in Tableau在 Tableau 中提取两个单词之间的单词
【发布时间】:2018-12-31 23:53:44
【问题描述】:

我的单列数据是这样的

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 显示空白数据。不知道我的逻辑哪里错了。任何帮助表示赞赏。

【问题讨论】:

  • 样本中的每一行是单独一行还是都在一行中?
  • @Bernardo 单行

标签: tableau-api calculation


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      以下表格计算有效,这假设在 MY_JOB_NAME_1 和“MemName:”之后没有空格

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-13
        • 2015-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-28
        • 2021-10-08
        相关资源
        最近更新 更多