Excel의 문자열에서 인용문의 데이터를 추출하는 방법

Excel의 문자열에서 인용문의 데이터를 추출하는 방법

각 문자열이 다음과 같은 csv 파일 형태의 타임스탬프를 가지고 있습니다.

TT_TU_MN009,"5009","200001010000","-1.8","3","4"
TT_TU_MN009,"5009","200001010200","-1.7","10","1"
TT_TU_MN009,"5009","200001011400","1","10","1"
...

내 목표는 이 문자열(큰따옴표 제외)에서 두 번째, 세 번째 및 네 번째 위치를 자체 열로 추출하는 것입니다.

  • 5009
  • 200001010000
  • -1.8

나는 첫 번째 열에서 이것을 달성했습니다.

=LEFT(A2;SEARCH(",";A2)-1)

하지만 다른 2개의 위치에 대해서는 어떻게 해야 할지 모르겠습니다. VBA 없이도 가능합니까?

미리 감사드립니다

답변1

Cell의 Text 문자열에서 n번째 텍스트를 추출하는 두 가지 방법을 제안하고 싶습니다.

방법 1:

여기에 이미지 설명을 입력하세요

  • 셀의 수식 J16:

    =TRIM(MID(SUBSTITUTE("""" & $J$13& REPT(" ",6),"""",REPT(CHAR(32),255)),2*255,255))
    

주의

  • 2*255J13에서 텍스트의 위치를 5009​​두 번째 단어/텍스트로 결정합니다.

  • 20000101000위치 의 경우 수식이 ,3번째로 계산되기 전에 4번째이므로 셀의 수식은 와 수식 의 로 J17대체됩니다 .2*2554*2556*255-1.8J18


방법 2:

VBA 매크로로 구성되어 있으며 UDF(User Define 기능)입니다.

  • 다음 중 하나를 누르세요.Alt+F11또는아르 자형ight를 클릭하세요.에스het TAB & 팝업 메뉴 히트코드 보기VB 편집기를 얻으려면.
  • 오피 &이 코드를 모듈로 사용하세요.

    Function FindWord(Source As String, Position As Integer)

    Dim arr() As String
    arr = VBA.Split(Source, ",")
    xCount = UBound(arr)
    If xCount < 1 Or (Position - 1) > xCount Or Position < 0 Then
     FindWord = ""
     Else
     FindWord = arr(Position - 1)
    End If
    End Function

여기에 이미지 설명을 입력하세요

  • 셀의 수식 J3:=SUBSTITUTE(J1,CHAR(34),"")
  • 셀에 다음 수식을 입력하세요 J5.=FindWord(J3,2)

주의

  • 이 수식에서는 다음 이 2되도록 셀의 두 번째 단어/텍스트를 결정합니다 .=FindWord(J3,3)

하나의 셀에 모두 필요한 경우 CONCATENATION을 사용할 수 있습니다.

관련 정보