Excel의 셀에서 시간 가져오기

Excel의 셀에서 시간 가져오기

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))

관련 정보