
각 문자열이 다음과 같은 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*255
J13
에서 텍스트의 위치를5009
두 번째 단어/텍스트로 결정합니다.20000101000
위치 의 경우 수식이,
3번째로 계산되기 전에 4번째이므로 셀의 수식은 와 수식 의 로J17
대체됩니다 .2*255
4*255
6*255
-1.8
J18
방법 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을 사용할 수 있습니다.