rand(life)

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

컴퓨터/엑셀

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

flogsta 2009. 5. 1. 05:30

오늘은 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로 간주됩니다.

 

이전에 성황리(?)에 끝난 엑셀러즈 오프모임에서 출제된 문제 중에서 다음 문제를 기억하십니까?

 

정답은 다음과 같았습니다.

=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/28 - [컴퓨터/엑셀] - 엑셀러즈 경시대회^^
2009/04/29 - [컴퓨터/엑셀] - 1일1함수 (24) FIND함수 : 문자열에서 지정 문자의 위치 찾기
2009/04/23 - [컴퓨터/엑셀] - 1일1함수 (20) MID함수 : 문자열에서 지정한 위치의 문자 추출