Excel 셀의 텍스트에서 시간을 가져와야 합니다. 텍스트에는 티켓 번호, 티켓 제목, 시간 기록 및 백분율이 포함됩니다. 그들 모두는 하나의 셀에 있습니다. 아래 예를 참조하세요.
12345678: The bottom part is incorrect 0:15h 0%
. 0:15
LEFT 및 RIGHT 함수 조합을 사용하려고 했지만 마지막 문장의 백분율이 1자리인 경우에만 작동합니다. 백분율은 0% - 100%입니다. 티켓 제목의 길이도 다양합니다.
답변1
무료로 사용하고 있어요reg-ex 대체 추가 기능* Excel에 정규식 기능을 추가하면 다음 공식을 사용할 수 있습니다.
=RegExFind(A2,"\d{1,2}:\d{1,2}")
*
나는 해당 추가 기능과 관련이 없습니다.
답변2
Máté Juhász의 답변은 확실히 가장 간단합니다. 그러나 추가 기능을 원하지 않고 정규식에 익숙하지 않은 경우(그리고 배우고 싶지 않은 경우) 내장 함수를 사용하여 결과를 얻는 더 복잡한 방법이 있습니다. 반복을 피하기 위해 도우미 열을 사용하면 약간 단순화될 수 있습니다. 나는 그것을 사용하여 그것이 어떻게 작동하는지 설명하겠습니다.
모든 "단어"는 공백으로 구분됩니다. 티켓 제목에는 다양한 단어 수가 포함될 수 있습니다. 마지막 요소인 백분율은 마지막 공백 이후이고 시간은 마지막 공백 다음입니다. B열은 다음 공식을 사용하여 공백 수를 계산합니다.
=LEN(A1)-LEN(SUBSTITUTE(A1," ",""))
이 공식은 모든 공백을 제거한 다음 문자열을 단축한 문자 수를 계산하는 방식으로 작동합니다. 예시에는 공백이 7개 있습니다.
C 열은 시간부터 시작하여 문자열 끝을 벗겨냅니다. 공식은 다음과 같습니다.
=MID(A1,FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),B1-1))+1,LEN(A1))
이는 다음을 지정할 수 있는 SUBSTITUTE 기능을 사용하여 시간 전의 공백(즉, 마지막 공백 옆)을 데이터(이 경우 CHAR(1))에 발생하지 않는 임의의 대상 문자로 대체하여 작동합니다. 교체할 특정 인스턴스. 그런 다음 FIND는 해당 문자의 위치를 찾고 MID는 다음 위치에서 시작하는 나머지 문자열을 추출합니다.
D열의 결과는 다음 공식을 사용하여 시간을 추출합니다.
=LEFT(C1,FIND("h",C1)-1)
"h"를 찾아 그 앞에 오는 모든 것을 추출하는 방식으로 작동합니다.
도우미 열을 사용하지 않고도 단일 수식으로 이 작업을 수행할 수 있습니다. 도우미 셀 참조를 도우미 셀 수식으로 바꾸는 경우 해당 수식은 다음과 같습니다.
=LEFT(MID(A1,FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-1))+1,LEN(A1)),FIND("h",MID(A1,FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-1))+1,LEN(A1)))-1)
이 모든 것은 후행 공백이 없는 깨끗한 데이터를 가정합니다. 후행 공백이 가능한 경우 A1에 대한 모든 참조를 TRIM()으로 래핑하거나 도우미 열에서 A1을 잘라내어 반복을 방지하도록 참조하세요.
답변3
다음 수식을 시도해 보세요.
=TRIM(RIGHT(TRIM(LEFT(SUBSTITUTE(TRIM(E10);"h ";REPT(" ";99));99));5))