기술 자료

문자열에서 문자로 분리된 부분 문자열 추출


게시 날짜: 13 Dec 2013
마지막 수정 날짜: 11 Mar 2024

질문

더 큰 문자열에서 특정 시작 문자와 끝 문자로 구분된 문자열을 추출하는 방법

환경

  • Tableau Desktop

답변

다음 지침은 긴 문자열에서 부분 문자열을 추출하는 방법을 설명하며 첨부된 통합 문서에서 검토할 수 있습니다.
  1. 분석 > 계산된 필드 만들기를 선택합니다.
  2. 계산된 필드 대화 상자가 열리면 다음을 수행합니다.
    • 계산된 필드에 이름을 지정합니다. 예제 통합 문서에서 계산된 필드 이름은 Substring입니다.
    • 수식 필드에서 계산된 필드를 다음과 유사하게 만듭니다.
      IF CONTAINS([<Dimension>], '<Identifying Character 1>') THEN
      MID(
          [<Dimension>],
          FIND([<Dimension>],'<Identifying Character 1>') + 1,
          FIND([<Dimension>],'<Identifying Character 2>') - (FIND([<Dimension>],'<Identifying Character 1>') +1)
      )
      END
      
  3. 확인을 클릭합니다.
  4. 부분 문자열을 선반으로 끌어옵니다.

추가 정보

  • 이 계산에 최종 부분 문자열의 식별 문자는 포함되지 않습니다. 식별 문자를 포함하려면 위 계산에 나타나는 두 곳 모두에서 "+1"을 제거하십시오.
  • CONTAINS([<Dimension>], '<Identifying Character 1>') 조건을 사용하는 IF 문은 첫 번째 식별 문자를 포함하지 않는 모든 문자열을 필터링으로 제거합니다. 문자를 찾을 수 없는 경우 FIND()가 0을 반환하지만 여전히 MID()의 유효한 시작 위치이기 때문에 이것이 필요합니다.
  • "식별 문자 1"이 원하는 부분 문자열의 시작 위치에 있습니다.
  • "식별 문자 2"가 원하는 부분 문자열의 끝 위치에 있습니다.
  • 동일한 문자의 두 인스턴스 사이에서 부분 문자열을 찾으려고 할 경우(예: "the *dog* is brown" 문자열에서 "dog") 두 번째 인스턴스에 대해 FIND() 대신 FINDNTH()를 사용합니다. 이는 다음과 유사할 수 있습니다.
    • MID(
          [<Dimension>],
          FIND([<Dimension>],'<Identifying Character>') + 1,
          FINDNTH([<Dimension>],'<Identifying Character>', 2) - (FIND([<Dimension>],'<Identifying Character>') +1)
      )
      
이 문서로 문제가 해결되었습니까?