누군가의 상식

[Excel] 첫 번째 문자열 찾는 함수

naudhizb 2023. 4. 19. 22:12
반응형

엑셀에서 첫번째 알파벳 위치 찾기

엑셀을 사용하다 보면 숫자와 알파벳이 섞인 값에서 알파벳을 분리해야 할 때가 있다.

예를 들면 셀의 값들이 12week, 1year, 50day 와 같은 경우 숫자의 길이가 제각각이기 때문에 숫자와 값을 분리하기 어려운 경우가 있다.

이 경우 아래와 같은 함수를 사용하여 첫번째 알파벳 글자의 인덱스를 구할 수 있다.

이후 원하는대로 LEFT, MID함수를 이용하여 숫자와 글자를 잘라 사용하면 된다.

만약 A1 셀의 첫번째 인덱스를 구하고 싶은 경우 아래와 같이 식을 구성할 수 있다.

= MATCH(TRUE,ISERROR(VALUE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))),0)

A1셀에 "2week" 값이 있는 경우를 예로 들어 함수 동작을 설명하면 아래와 같다.

  • INDIRECT 함수는 일반 문자열을 셀로 변환하는 함수이고 "1:"&LEN(A1)을 통해 1행부터 5행까지를 선택한다. (1:5)
  • ROW 함수는 선택한 셀의 행을 반환하는 함수이다.
  • INDIRECT의 반환값이 영역이기 때문에 ROW함수의 반환값은 분산값이다. [1, 2, 3, ..., N]
  • MID함수는 선택한 셀 내부의 문자열에 중간 글자를 반환하는 함수이다. 이 때 분산 반환값을 중간 인덱스로 하여 해당 셀의 중간 글자 1개씩을 선택한다. [2, w, e, e, k]
  • VALUE 함수는 해당 값을 숫자로 바꿀 수 있는지를 반환하는 함수이다. 값이 문자열인경우 #VALUE를 반환한다. [2, #VALUE, #VALUE, #VALUE, #VALUE]
  • ISERROR 함수는 값이 오류값인지 확인하는 함수이다. [FALSE, TRUE, TRUE, TRUE, TRUE]
  • MATCH 함수는 값이 지정한 값과 일치하는지를 찾는 함수이다. 이 때 찾고자 하는 값이 TRUE 이므로 TRUE와 정확히 비교(0)한다. [2]
반응형