rand(life)

1일1함수 (20) MID함수 : 문자열에서 지정한 위치의 문자 추출 본문

컴퓨터/엑셀

1일1함수 (20) MID함수 : 문자열에서 지정한 위치의 문자 추출

flogsta 2009. 4. 23. 08:15
오늘은 MID함수에 대해 다룹니다. 이전 포스트에서 MID함수에 대해 잠깐 언급하였기 때문에, 이번에는 전에 만든 이원목적분류표와 관련하여 유용한 팁을 하나 알려드리겠습니다.

MID(text,start_num,num_chars)

text  추출할 문자가 들어 있는 텍스트 문자열입니다.

start_num  추출할 첫 문자의 위치입니다. text의 첫 문자 위치는 start_num 1입니다.

num_chars  MID 함수를 사용하여 텍스트에서 반환할 문자의 개수를 지정합니다.

주의

  • start_num이 문자열의 길이보다 크면 ""(빈 문자열)을 반환합니다.
  • start_num이 문자열의 길이보다 작고 start_num과 num_chars의 합이 문자열의 길이를 초과하면 MID는 마지막 문자까지 반환합니다.
  • start_num이 1보다 작으면 #VALUE! 오류 값이 반환됩니다.
  • num_chars가 음수이면 #VALUE! 오류 값이 반환됩니다.



이원목적분류표 간단버전에서 정답의 개수를 보여주는 수식을 살펴보겠습니다. 아래 그림에서는 O9셀의 수식입니다.

=COUNTIF($C$9:$C$38,N9)





C9:C38의 범위에서 정답이 1인 개수를 세어야하기 때문에,

=COUNTIF($C$9:$C$38,1)

이라고 수식을 써도 되지만 그렇게하면 2번답의 개수, 3번답의 개수등도 일일이 수식을 손으로 써줘야합니다. (상수인 1,2는 끌어채우기를 하면 3,4,5로 자동변환되지 않기 때문입니다.)

그래서 N9셀의 값을 참조하게하고 끌어채우기를 하면, 셀주소는 자동변환되기때문에 N10,N11,N12... 로 수식이 자동변환됩니다.

아무튼, 수식에서 N9셀을 참조하게한 건 이해가 되는데, 정작 N9셀에는 "1번답"이라고 써있는 것입니다. 그렇다면, "1번답"이라는 문자열에서 "1"이라는 문자만 참조해야하므로 위의 수식은 다음과 같이 고쳐야하지 않을까요?

=COUNTIF($C$9:$C$38,MID(N9,1,1))

 =COUNTIF($C$9:$C$38,  $C$9:$C$38의 범위안에서 다음의 값을 가진 셀의 개수를 구한다
 MID(N9  N9셀안에 들어있는 문자열중
 ,1,1))  첫번째 문자부터 시작해서 1개의 문자



그런데, 실제로 N9셀을 클릭해보면 그 안에는 "1번답"이라는 문자열이 들어가 있는 것이 아니라 "1"만 들어가 있습니다. 어떻게 된 것일까요?

그것은 셀서식을 이용한 것입니다.

숫자가 쓰여있는 셀을 선택하고, 오른쪽 클릭하여 "셀서식"을 실행합니다.



"사용자지정"을 선택하고 "형식"란에
0을 입력하고, 그 뒤에 "번답의개수"라고 입력합니다.


"확인"을 누르고 나오면 실제 셀안에는 1이라는 값이 들어있지만 표시는 "1번답의개수"로 되어있는 것을 볼 수 있습니다.

이처럼, 셀서식을 잘 이용하면 수식을 좀 더 단순하게 만들 수 있습니다.

2009/04/18 - [컴퓨터/엑셀] - 엑셀로 작성한 이원목적 분류표 간단버전
2009/04/21 - [컴퓨터/엑셀] - 1일1함수 (18) INDIRECT 함수 : 셀주소 지정을 간접적으로
2009/04/16 - [컴퓨터/엑셀] - 엑셀함수 스페셜 : SUMPRODUCT 함수가 COUNTIFS함수보다 나은점