1일1함수 (26) LEFT, RIGHT 함수

오늘은 LEFT 함수와 RIGHT 함수에 대해 알아보겠습니다. 두 함수는 정반대방향으로 똑 같은 기능을 하는 함수이기 때문에, 하나만 알아두시면 나머지 하나는 저절로 아시게 되어있습니다.
LEFT는 텍스트 문자열의 첫 번째 문자부터 시작하여 지정한 문자 수만큼 문자를 반환합니다.
구문
LEFT(text,num_chars)
text  추출할 문자가 들어 있는 텍스트 문자열입니다.
num_chars  LEFT 함수로 추출할 문자 수입니다.
num_chars는 0이거나 0보다 커야 합니다.
num_chars가 문자열의 길이보다 길면 LEFT는 텍스트 전체를 반환합니다.
num_chars를 생략하면 1로 간주됩니다.

RIGHT는 지정한 문자 수에 따라 텍스트 문자열의 마지막 문자부터 지정된 개수의 문자를 반환합니다.
구문
RIGHT(text,num_chars)
text  추출할 문자가 들어 있는 텍스트 문자열입니다.
num_chars  추출할 문자 수를 지정합니다.
주의
  • num_chars는 0이거나 0보다 커야 합니다.
  • num_chars가 문자열의 길이보다 크면 RIGHT는 모든 문자열을 반환합니다.
  • num_chars를 생략하면 1로 간주됩니다.

다음 문제를 풀어보세요.
"A1:A4 범위에서, 첫번째 글자가 영어소문자이고 두번째 글자가 숫자인 셀의 개수를 구하시오."


정답은 다음과 같습니다.
=SUMPRODUCT((CODE(MID(A1:A4,1,1))>=97)*(CODE(MID(A1:A4,1,1))<=122)*(CODE(MID(A1:A4,2,1))>=48)*(CODE(MID(A1:A4,2,1))<=57))

SUMPRODUCT함수는 원래는 배열의 각 항목의 곱의 합을 구하는 것인데, 실제로는 여러 조건들을 모두 만족하는 셀의 수나 해당 셀값의 합을 구하는데 더 많이 사용됩니다. 이전 글들을 참고하세요.

위 함수의 해석은 "A1:A4범위의 셀중에서 첫번째 글자의 아스키코드값이 97이 넘으면서 122를 넘지 않는 조건과 두번째 글자의 아스키코드값이 48을 넘으면서 57을 넘지 않아야하는 모든 조건을 다 만족하는 셀의 개수를 구하라"입니다. 여기서 MID함수가 네 번 나오는데, 앞에 나오는 두 개의 MID함수는 사실 LEFT함수를 쓰면 더 간단합니다.
즉, MID(A1:A4,1,1)는 결국 LEFT(A1:A4,1) 와 같습니다
하지만 아직 LEFT함수를 배우지 않았기에 그냥 MID함수를 쓰는 것을 답으로 했습니다.^^*

그리고, 지난 포스트에서 마지막에 이름을 구하는 수식도 사실은
=RIGHT(A1,3)
처럼 하면 더 간단했습니다. 아, 이름이 네자 이상인 학생의 경우도 생각하면, 좀 더 어려워지겠군요. 그건 숙제로 남겨 두겠습니다.^^*

2009/04/29 - [컴퓨터/엑셀] - 1일1함수 (24) FIND함수 : 문자열에서 지정 문자의 위치 찾기
2009/04/23 - [컴퓨터/엑셀] - 1일1함수 (20) MID함수 : 문자열에서 지정한 위치의 문자 추출

댓글

이 블로그의 인기 게시물

중복된 텍스트 제외하고 고유 텍스트 개수 세기

1일1함수 (12) sumproduct함수 - 동점일때 다른 기준으로 순위매기기

한 폴더 안의 모든 파일에서 특정 시트 복사해오는 vba