라벨이 이원목적분류표인 게시물 표시

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

이미지
오늘은 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"이라는 문자만 참조해야하므로 위의 수식은 다음과 같이 고쳐야하지 않을까요?

1일1함수 (19) LEN함수 : 문자열의 길이 구하기

이미지
계속해서 이원목적분류표에 있는 함수중 다중답의 개수를 구하는 수식을 살펴보겠습니다. 수식은 다음과 같습니다. =SUMPRODUCT(N(LEN(INDIRECT("C"&MATCH("유형",A:A,0)+2&":C"&MATCH("주관식",A:A,0)-1))>1)) LEN함수와 N함수를 제외하고는 모두 배운 함수입니다. 여기서 N함수는 내일 설명하겠지만, 여기서는 굳이 없어도 됩니다만 배열계산을 할때 배열이 하나밖에 없으면 집어넣는 것이 오류 가능성을 줄여준다고 합니다. 오늘은 LEN함수에 대해 배우겠습니다. LEN함수는 문자열의 길이를 반환하는 함수입니다. LEN ( text ) text   길이를 확인하려는 문자열입니다. 공백도 문자로 계산됩니다. 아주 간단하죠? ^^* 위에서처럼, 영어, 숫자, 한글, 구두점 모두 한 개로 계산하여 나타냅니다. 이원목적분류표의 다중답의 개수를 구하는 위의 수식에서 INDIRECT부분을 계산하여 실제 셀 주소로 바꾸고 보면, C8:C37 이 됩니다. 즉, 위의 수식은 다음과 같습니다. =SUMPRODUCT(N(LEN(C8:C37)>1)) 즉, C8:C37의 범위중에서 문자열의 길이가 1보다 긴 셀의 개수를 구하는 것입니다. 정답이 1,2,3,4,5중의 하나라면 LEN함수를 거친 결과값은 1이 되겠지만, 정답이 다중답이라면 한자리 숫자보다 더 많은 글자가 들어가야하므로 길이가 1보다 커지겠네요. 예를 들어, C8셀은 1번 문제의 정답을 보여주며, 정답은 "2,4"라면 =LEN(C8) 의 결과값은 얼마일까요? 예, 3입니다. LEN함수는 다음에 한번 정리하게 될 문자열 함수들과 함께 사용할때 유용한 함수입니다. 2009/04/15 - [컴퓨터/엑셀] - 엑셀로 작성한 이원목적분류표 2009/04/21 - [컴퓨터/엑셀] - 1일1함수 (18

1일1함수 (18) INDIRECT 함수 : 셀주소 지정을 간접적으로

이미지
지난번에 만들었던 이원목적분류표 에서 가장 수식이 긴 것은 다음과 같은 수식이었습니다. =COUNTA(INDIRECT("R"&MATCH("유형",$A:$A,0)+2&"C"&COLUMN()&":R"&ROW()-1&"C"&COLUMN(),FALSE)) 이것은 평가목표와 난이도를 표시한 것의 개수를 세는 수식인데, 그냥 간단히 =COUNTA($G$8:$G$42) 라고 표시하면 안되냐고 생각하시는 분이 있을것입니다. 예, 그렇게해도 해당셀에 숫자나 문자가 입력되어있는 셀의 개수를 세는 것이니까 같은 역할을 합니다. 하지만 제 생각에는 그렇게하면 8행부터 42행까지의 개수는 셀 수 있지만, 행을 몇 개 추가하거나 삭제하여 행의 번호가 바뀌면 수식을 일일이 다시 고쳐야한다고 생각했었습니다. 하지만 이것은 완전히 잘못된 생각으로, 일단 수식으로 정해놓은 범위는 행번호를 오른쪽 클릭하여 행전체를 추가하거나 삭제하면 수식이 자동으로 수정된다 는 사실을 깜빡한 것이었습니다. 즉, 다음과 같이 평가항목중 "지식"에 해당하는 문항이 몇 개인지 합산하여 보여주는 G43셀의 수식을 다음과 같이 입력하고, COUNTA($G$8:$G$42) 주관식 문항의 수가 5개가 아니라 8개이므로, 3개의 행을 더 추가하고 싶습니다. 이때 여기서보듯이 39,40,41이라고 되어있는 행숫자를 드래그하여 세 개의 행전체를 선택하고, 오른쪽 클릭하면 보시는 것과 같은 메뉴창이 뜹니다. 여기서 "삽입"을 선택하면 39,40,41행자리에 새로운 행이 만들어지고 기존의 행들은 뒤로 밀립니다. 여기서 아까 수식을 입력했던 G43셀은 G46셀로 밀려갔네요. 여기의 수식을 살펴보면 =COUNTA($G$8:$G$45) 로 수식이 자동으로 바뀌어 있음을 알 수 있습니다. 따

1일1함수(17) MATCH함수: 찾는 데이터가 있는 위치를 알려준다

이미지
지난번에 엑셀로 이원목적 분류표 를 만들었습니다. 여러가지 경우의 수를 생각하면서 수식을 만들다보니 이렇게 고생할바에야 그냥 개수를 세는게 낫겠다는 생각도 들었지만, 써보니 편하다고 말씀하시는 분들이 많아 보람도 느낍니다. 사소한 몇가지 오류를 수정하여 이전포스트에 올려두었습니다. 그리고 또 한가지 느낀 점은, 엑셀을 거의 사용하지 않으시는 분들이 의외로 많다는 것이었습니다. 제가 이것을 만들때는 어느정도는 엑셀을 사용할 줄 아시는 분들을 대상으로 만들었기에, 엑셀을 처음 다뤄보시는 분들이 난감해 하는 것을 볼때 제가 편하자고 만든 것이 또 어떤 분에게는 불편함이 되는구나 하는 생각도 들었습니다. 그래서, 다음 버전업때는 엑셀 초보이신 분들도 큰 불편없이 사용할 수 있게 대대적으로 바꾸어 볼까 합니다. 예를 들면, 주관식 문항수와 객관식 문항수를 입력하면, 자동으로 그 수만큼 표가 만들어져서, 행을 삭제하거나 추가하는 수고를 덜어드리는 것이라든지, 아니면 HWP파일에서처럼 주관식,객관식 밑에 빈칸이 있어도 오류가 생기지 않도록 하는 방법을 연구한다던지 하는 것입니다. 혹시 좋은 생각이 있으시면 제안해주시면 고맙겠습니다. (P.S. 사실은 수식이 이렇게 복잡할 필요가 없었습니다. 엑셀의 기본적인 상식을 깜빡한 탓입니다. 다시 이원목적분류표를 다시 수정해서 올렸습니다.) 2009/04/18 - [컴퓨터/엑셀] - 엑셀로 작성한 이원목적 분류표 간단버전 이번주는 엑셀로 만든 이원목적분류표안에 있는 함수들을 알아보는 시간으로 하겠습니다. 사용된 수식들은 다음과 같습니다. 문항수합계의 수식은 =COUNTA(INDIRECT("R"&MATCH("유형",$A:$A,0)+2&"C"&COLUMN()&":R"&ROW()-1&"C"&COLUMN(),FALSE)) 문항배점합계의 수식은 =SUM(INDIRE

엑셀로 작성한 이원목적 분류표 간단버전

이전에 작성한 이원목적분류표에는 지나치게 복잡한 수식이 들어가 있습니다. 그것은 객관식과 주관식의 문항수가 과목마다 다르기에, 그것을 고려하여 문항수가 바뀌더라도 수식을 고칠 필요가 없게하기 위한 방법이었습니다만, 이전의 포스트에서 밝혔듯이 엑셀에는 행이나 열이 통째로 삭제되거나 추가되면, 그에 맞게 수식이 자동으로 바뀌는 기능이 있다 는 것을 깜빡한  결과입니다. 따라서, 지나치게 복잡한 수식을 제거하고, 단순하게 만든 버전 을 올립니다. 이전의 버전에서 있었던 제약들 (주관식과 객관식 사이, 주관식과 "계"사이에 빈 행이 있으면 안된다던지, "유형"이나 "주관식" "객관식"등의 문구를 바꾸지 말라는 등)은 없어졌습니다. 객관식 30문항, 주관식 10문항이 들어가도록 만들었으니, 직관적으로 편집하시면 됩니다. 문항수가 적으면 행의 내용만 지우시고, 문항수가 이것보다 많으면 행을 늘리시면 됩니다. 2009/04/15 - [컴퓨터/엑셀] - 엑셀로 작성한 이원목적분류표 2009/04/21 - [컴퓨터/엑셀] - 1일1함수 (18) INDIRECT 함수 : 셀주소 지정을 간접적으로

엑셀로 작성한 이원목적분류표

이미지
이원목적분류표를 엑셀로 만들어 보았습니다. 배점합이 100점이 맞는지 계산하거나 난이도 상중하가 몇개씩인지 세기가 귀찮아서 만들어 보았습니다. 엑셀 2007에서 제일 잘 작동합니다. 파일을 열어보고 혹시나 걱정하실 분이 있을까 미리 말씀해 드리는데, 이 안에 들어있는 데이타는 2005년에 실시한 시험데이타입니다. 유출되더라도 전혀 문제될 것이 없습니다. 이 안에 사용된 함수들중에서 지금까지 배운 것과 다음에 배울 것들이 많이 있습니다. SUMPRODUCT, INDIRECT, MATCH, COUNTA, LEN, N ... 과목마다 객관식이나 주관식의 문항수가 다르다는 문제를 해결하기가 제일 어려웠습니다. 수식이 복잡한 이유는 객관식문항이나 주관식 문항의 수가 바뀌어도 오류가 나지 않도록 하기위해서입니다. 따라서 객관식과 주관식사이에 공백을 두면 오류가 납니다. 주관식과 맨 아랫단 사이에 빈 행이 들어가 있어도 오류가 납니다. 이런식으로 객관식과 주관식 사이가 떨어져 있거나 주관식과 계 사이가 떨어져 있으면 이 부분이 이런 식으로 빨간색으로 변합니다. 오류가 났다는 의미입니다. 지금처럼 객관식,주관식,계 사이에 공백이 없이 연결되어있어야합니다. p.s. 2009/4/16 엑셀 2003에서는 설정한 서식과 수식에 일부 문제가 있어서 2003버전을 따로 만들었습니다. p.s. 2009/4/17 제목 줄을 추가하였을때 생기는 오류를 수정하였습니다. ( 2003 , 2007 버전 둘 다) p.s. 2009/4/18 지나치게 복잡한 수식을 제거하고, 최대한 단순하게 만든 버전 입니다.