Извлечь слово между двумя словами в Таблице

Мои данные в одном столбце выглядят так

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)

Проблема - Табло показывает пустые данные. Не уверен, где моя логика неверна. Любая помощь приветствуется.


person Pirate X    schedule 24.07.2018    source источник
comment
Каждая строка в вашем примере - это отдельная строка или все они находятся в одной строке?   -  person Bernardo    schedule 24.07.2018
comment
@Bernardo однорядный   -  person Pirate X    schedule 24.07.2018


Ответы (3)


Вы можете использовать функции REGEX (в зависимости от вашего источника данных). Попробуйте это: REGEXP_EXTRACT ([Data], 'JobName: (. *)')

person rdugge    schedule 24.07.2018

Я вижу, что вы отметили, что текст находится в одной ячейке, а не в одном столбце, как вы написали в вопросе.

Это находит JobName и использует эту позицию плюс ее длину в качестве начальной позиции, затем находит MemName в качестве конечной позиции (и вычисляет количество символов между ними)

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

введите здесь описание изображения

person Andreas    schedule 24.07.2018

Следующая таблица calc работает, это предполагает, что нет места после MY_JOB_NAME_1 и "MemName:"

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