11월, 2015의 게시물 표시

1일1함수 (23) EXACT함수 : 두 문자열 일치 여부 검사

이미지
EXACT함수는 문자열 두 개가 일치하는지 여부를 검사하는 함수입니다. EXACT ( text1 , text2 ) text1   첫 번째 텍스트 문자열입니다. text2   두 번째 텍스트 문자열입니다. 주의 EXACT 함수 대신 이중 등호(==) 비교 연산자를 사용하여 두 문자열이 정확하게 일치하는지 비교할 수도 있습니다. 예를 들어 =A1==B1을 사용하면 =EXACT(A1,B1)을 사용할 때와 같은 결과를 얻을 수 있습니다. 두 개의 시험을 치르고 난 다음에 그 성적을 하나로 합쳐야하는데, 시험마다 결시생들이 있어서 이름을 대조해보지 않고 성적을 무작정 합쳤다가는 자료가 엉망이 되는 일이 있습니다. 학생의 이름을 참조하여 비교하는 EXACT함수를 사용하여, FALSE값이 나온 곳을 찾아 결시생처리를 해주고 다시 수식을 적용시키는 방법으로 해야 오류없이 두 시험의 성적을 합할 수 있습니다. 물론, 다음과 같이 IF함수를 써도 가능합니다. =IF(A2=B2,TRUE,FALSE) 다만, 세 개이상의 문자열을 비교할 수 있으면 더 좋았을거라는 아쉬움은 남습니다.  2009/03/27 - [컴퓨터/엑셀] - 엑셀의 연산자

엑셀의 연산자

이미지
아주 기본이 되는 내용입니다. 혹시나해서 정리했습니다. 1. 산술연산자  +   더하기  3+3 (3더하기3) -  빼기  4-1 (4빼기1) *  곱하기  3*4 (3곱하기4) /  나누기  10/5 (10나누기5) ^  거듭제곱  3^2 (3의2제곱) 너무나 기초적인 것이죠. ^^; 거듭제곱 정도는 조금 생소할지 모릅니다만.. 2. 비교 연산자  =  같음  A1=B1  >  보다 큼  A1>B1  <  보다 작음  A1<B1  >=  크거나 같음  A1>=B1  <=  작거나 같음  A1<=B1  <>  같지 않음  A1<>B1 크거나 같음과 작거나 같음일때 등호의 위치는 항상 오른쪽입니다. =<, => 처럼 쓰지 않도록 주의하세요. 3. 텍스트 연결 연산자 : &  텍스트연결연산자는 의외로 사용빈도수가 높습니다. 잘 알아두시면 유용합니다.

1일1함수 (22) CONCATENATE함수 : 문자열 결합

이미지
오늘부터는 문자열에 관련된 함수를 진행하겠습니다. 지난번에는  LEN함수 와  MID함수 를 배웠습니다. 오늘은 문자열을 결합하는 CONCATENATE함수를 배우겠습니다. CONCATENATE 함수 2개 이상의 텍스트 문자열을 하나의 문자열로 연결하려면 텍스트 함수 중 하나인  CONCATENATE 를 사용합니다. 구문:  CONCATENATE(text1, [text2], ...) 예: =CONCATENATE(A2, " ", A3,"의 ", "하천 서식 밀도는 ", A4,"/킬로미터입니다.") =CONCATENATE(B2, " ", C2) 모범 사례 방법 설명 CONCATENATE 함수 대신 앰퍼샌드(&)를 사용합니다. 앰퍼샌드(&) 계산 연산자를 사용하면 함수를 사용하지 않고 텍스트 항목을 연결할 수 있습니다. 예를 들어  =A1 & B1 은  =CONCATENATE(A1,B1) 과 동일한 값을 반환합니다. 대부분의 경우 문자열을 만들 때 앰퍼샌드 연산자를 사용하는 것이 CONCATENATE를 사용하는 것보다 빠르고 간단합니다. 연산자 사용 방법에 대해 자세히 알아보세요. 아래에 써 있지만, 앰퍼샌드(&)연산자와 똑 같은 일을 합니다. 그러므로 간단한 문자열을 합치는데 철자도 길고 어려운 CONCATENATE함수를 사용할 필요는 없겠지요. 앰퍼샌드가 여러 개 붙어있으면 보기 싫을 때, 문자열 결합이라는 것을 분명히 알려주고 싶을 때 사용할 만한 것 같습니다. 참고로, CONCATENATE라는 영어단어의 뜻은 "사슬처럼 잇다" 입니다.   2009/04/22 - [컴퓨터/엑셀] - 1일1함수 (19) LEN함수 : 문자열의 길이 구하기 2009/04/23 - [컴퓨터/엑셀] - 1일1함수 (20) MID함수 : 문자열

1일1함수 (21) N함수 : 각종 값을 숫자로 변환한다.

이미지
N함수는 각종 값을 숫자로 변환시켜줍니다. 다양한 데이타 서식을 하나로 통일시켜 준다는 점에서 T함수와 유사합니다. (참고로, T함수는 각종 값을 텍스트로 변환시켜줍니다) N ( value ) value   변환할 값입니다. N 함수를 사용하여 변환되는 값은 다음과 같습니다. 값 또는 참조 결과 숫자 같은 숫자 Microsoft Excel에서 사용할 수 있는 기본 제공 날짜 형식 중 하나를 사용하는 날짜 해당 날짜의 일련 번호 TRUE 1 FALSE 0 오류 값(예: #DIV/0!) 오류 값 기타 0 주의 일반적으로 Excel에서는 필요에 따라 값이 자동으로 변환되므로 수식에서 N 함수를 사용할 필요가 없습니다. 이 함수는 다른 스프레드시트 프로그램과의 호환을 위해 제공됩니다. 날짜는 계산에 사용할 수 있도록 순차적인 일련 번호로 저장됩니다. 기본적으로 1900년 1월 1일이 일련 번호 1이고, 2008년 1월 1일은 1900년 1월 1일에서 39,448일째 날이므로 일련 번호 39448이 됩니다. Macintosh용 Microsoft Excel에서는  기본적으로 다른 날짜 체계 가 사용됩니다. 아래는 지난 시간에 언급했던 다중답의 개수를 구하는 수식입니다.  =SUMPRODUCT(N(LEN(INDIRECT("C"&MATCH("유형",A:A,0)+2&":C"&MATCH("주관식",A:A,0)-1))>1)) : 원래버전 =SUMPRODUCT(N(LEN($C$9:$C$38)>1))  : 간편버전 둘 다 N함수가 들어있습니다. 여기서 N함수는 논리값을 숫자0,1로 변환시켜주는 일을 합니다. 이전에 다중 조건의 개수를 구하는 수식은 COUNTIFS로 구할 수도 있고 SUMPRODUCT로 구할수도 있다고 했었지요? 즉,  SUMPRODUCT((국어>=90)*(수학(>=90))   이라는 수식은 국어점수가 90점 이상이면서

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 지나치게 복잡한 수식을 제거하고, 최대한 단순하게 만든 버전 입니다.

1일1함수 (16) COUNTIFS함수 : 주어진 여러 조건에 맞는 셀의 개수 구하기

이미지
오늘은 2007에서 새로이 추가된 함수인 COUNTIFS함수를 알아보겠습니다. 이전에 배웠던 COUNTIF함수가 단일한 조건을 만족하는 셀의 게수를 구했다면, COUNTIFS함수는 여러조건을 동시에 만족하는 셀의 개수를 구합니다. 범위 내에서 여러 조건을 만족하는 셀의 개수를 계산합니다. 구문 COUNTIFS ( range1 , criteria1 ,range2, criteria2...) range1, range2, ...   관련 조건을 평가할 1개에서 127개 사이의 범위입니다. 각 범위의 셀은 숫자나 이름, 배열 또는 숫자가 들어 있는 참조여야 합니다. 빈 값이나 텍스트 값은 무시됩니다. criteria1, criteria2, ...   숫자, 식, 셀 참조 또는 텍스트 형식으로 된 1개에서 127개 사이의 조건으로서, 개수를 계산할 셀을 정의합니다. 예를 들어 32, "32", ">32", "사과" 또는 B4와 같이 지정할 수 있습니다. 주의 range의 각 셀은 해당 셀에 대해 지정한 관련 조건을 모두 만족하는 경우에만 개수를 계산하는 데 포함됩니다. 조건이 빈 셀이면 해당 셀은 값 0으로 처리됩니다. 와일드카드 문자인 물음표(?)와 별표(*)를 조건에 사용할 수 있습니다. 물음표는 한 문자에 해당하고 별표는 모든 문자열에 해당합니다. 실제 물음표나 별표를 찾으려면 해당 문자 앞에 물결표(~)를 입력합니다. 다음과 같은 학생의 성적이 있습니다. 이중에서 국어, 영어, 수학의 점수가 모두 80점 이상인 학생의 수를 알고 싶습니다. A14열에는 다음과 같은 수식이 들어갑니다. =COUNTIFS($B$2:$B$11,">=80",$C$2:$C$11,">=80",$D$2:$D$11,">=80")  =COUNTIFS( 다음의 조건을 만족하는 셀의 수를

1일1함수 (15) COUNTBLANK 함수 : 비어있는 셀의 개수를 세자

이미지
오늘은 이전에 배운 COUNTA함수와 정반대의 기능을 하는 COUNTBLANK함수입니다. COUNTBLANK ( range ) range   빈 셀의 개수를 계산할 범위입니다. 주의 ""(빈 텍스트)를 반환하는 수식이 포함된 셀의 개수도 계산됩니다. 그러나 0 값을 포함하는 셀은 제외됩니다. COUNTBLANK 함수는 비어있는 셀의 개수를 세며, 실제로는 셀 안에 수식이 들어있더라도 결과값이 빈텍스트가 출력되도록 되어있다면 카운트를 합니다. 단, 0이 들어있으면 비어있는 것이 아니라 0이 들어있는 것이므로 카운트를 하지 않습니다. 위 그림처럼 C2:C11의 범위에서 COUNTBLANK함수를 쓰면 결과값은 2가 됩니다. 학생4와 학생8은 0이 입력되어있으므로, 카운트하지 않습니다. C열에는 =IF(B2>70,"합격","") 와 같은 수식이 들어있기는 하지만, 결과값으로 빈텍스트 ("")가 출력된 6행과 7행을 빈셀로 간주하여 카운트하기에 결과값은 2입니다. 2009/04/05 - [컴퓨터/엑셀] - 1일1함수 (11) COUNTIF 함수 2009/04/12 - [컴퓨터/엑셀] - 1일1함수 (13) COUNT함수 : 숫자가 들어있는 셀의 수를 세자. 2009/04/12 - [컴퓨터/엑셀] - 1일1함수 (14) COUNTA 함수 : 비어있지 않은 셀의 개수 구하기

1일1함수 (14) COUNTA 함수 : 비어있지 않은 셀의 개수 구하기

이미지
오늘은 COUNTA함수입니다. COUNT함수 는 숫자가 들어있는 셀의 개수만을 구했다면, COUNTA함수는 숫자, 텍스트 뿐만 아니라 논리값(TRUE,FALSE)이나 오류메시지조차도 세어줍니다. 인수 목록에서 공백이 아닌 셀과 값의 개수를 계산합니다. COUNTA를 사용하면 범위나 배열에서 데이터가 들어 있는 셀의 개수를 계산할 수 있습니다. 구문 COUNTA ( value1 ,value2,...) value1, value2, ...   개수를 계산할 값을 나타내는 인수로, 1개에서 255개까지 사용할 수 있습니다. 주의 오류 값과 빈 텍스트("")를 포함하여 모든 형식의 정보를 값으로 사용할 수 있습니다. 빈 셀은 값에 포함되지 않습니다. 인수가 배열 또는 참조이면 해당 배열이나 참조의 값만 사용되고 배열 또는 참조의 빈 셀과 텍스트 값은 무시됩니다. 논리값, 텍스트 또는 오류 값의 개수를 계산할 필요가 없는 경우에는 COUNT 함수를 사용하십시오. 전체 학생수를 표시해야하는 문서를 자주 작성해야하는데 그때마다 전체 학생 이름이 나열된 시트를 찾아가서 확인하면 귀찮겠지요? 엑셀러가 귀찮음을 느낀다는 것이 발전하고 있다는 증거입니다. 전혀 귀찮아하지 않고 부지런히 작업할 수도 있습니다만, 그렇다면 발전이 없습니다. 각설하고, 2008년 매달마다 전체학생수의 변화를 나타내는 표를 작성해야한다고 합시다. 시트의 이름은 200803, 200804, ~, 200812 처럼 연도와 달의 숫자로 주었다고 합시다. 위의 그림과 같은 내용을 200803 시트부터 200812 시트까지 작성했다고 할때, 매달 전체 학생수의 변화를 나타내는 합계시트를 다음과 같이 작성했습니다. 3월의 전체 학생수에 해당하는 수식은 위의 그림과 같습니다. =COUNTA('200803'!$D:$D)-1  =COUNTA( 다음 범위에서 공백이 아닌 모든 셀의 개수를 세어라  &#

1일1함수 (13) COUNT함수 : 숫자가 들어있는 셀의 수를 세자.

이미지
지난주까지는 좀 어려운 내용들이었습니다만, 이번주부터는 함수의 종류별로 차근차근히 알아보도록 하겠습니다. 오늘은 숫자가 들어있는 셀의 수를 세는 COUNT함수입니다. 인수 목록에서 숫자가 포함된 셀과 숫자의 개수를 계산 합니다. COUNT 함수를 사용하면 숫자 범위나 배열 내의 숫자 필드에 있는 항목 수를 계산할 수 있습니다. 구문 COUNT ( value1 ,value2,...) value1, value2, ...   여러 데이터 형식을 포함하거나 참조하는 인수이며 개수 계산에는 숫자만 포함됩니다. 1개에서 255개까지 사용할 수 있습니다. 주의 숫자, 날짜 또는 숫자의 텍스트 표현을 인수로 사용하여 개수를 계산할 수 있습니다. 인수 목록에 직접 입력하는 논리값, 텍스트로 나타낸 숫자 등은 계산에 포함됩니다. 숫자로 변환할 수 없는 텍스트나 오류 값이 인수에 포함된 경우 이러한 값은 무시됩니다. 인수가 배열 또는 참조이면 해당 배열이나 참조의 숫자만 사용되고 배열 또는 참조의 빈 셀, 논리값, 텍스트, 오류 값 등은 무시됩니다. 논리값, 텍스트 또는 오류 값의 개수를 계산하려면 COUNTA 함수를 사용해야 합니다. 다음과 같이 학생의 성적이 있을때 학생들의 성적 평균을 내기위해 AVERAGE함수를 씁니다. 그런데, 가끔씩 결시하는 학생이나 성적표에 오류값이 들어있는 경우가 있는데, 과연 AVERAGE함수가 그 학생들의 성적은 어떻게 처리하고 있는 건지 궁금합니다. 이번 기회에 확인해 봅시다. 아래 그림과 같이 학생들의 성적이 있고, 학생4와 학생8은 점수가 들어있지 않습니다. 학생 성적의 평균은 시험에 응시한 학생만의 성적으로 내야합니다. 즉, 다음과 같이 수식을 쓸 수 있습니다. =SUM(B2:B11)/COUNT(B2:B11)  =SUM(B2:B11)  학생1부터 학생10까지학생의 성적의 총합을  / 다음의 수로 나눈다  COUNT(B2:B11)  학생1부터

우선순위 부여하여 동점자 석차 구하기

이미지
이전의 글에서 sumproduct함수를 설명하면서 동점자가 나왔을 때 추가의 기준을 적용하여 순위를 결정하는 방법 을 설명한 적이 있습니다. (예를 들어, 총점이 같을 경우 국어 점수가 높은 학생이 순위를 높게 하는 경우) rank함수를 써서 순위를 구하고, 동점자의 경우 자신보다 총점이 같으면서 국어점수가 높은 학생의 수를 구해서 순위에다 더해주는 방법이었습니다. 참고: http://garyjonesgogo.blogspot.kr/2015/11/11-12-sumproduct.html 그 글에서, 하나의 기준이 아니라, 제2,제3,제4의 기준을 주려면 어떻게 해야하나 는 문제에 대해서는 답을 내놓지 못했습니다.(예를 들어, 총점이 같을 경우, 국어점수를 우선으로, 국어점수도 같으면 영어점수, 영어점수도 같으면 수학점수….) 물론 rank와 sumproduct를 더하는 위의 방법을 쓸 수도 있습니다. 하지만 우선순위가 많아질수록 수식이 기하급수적으로 늘어납니다. 위의 그림에서처럼, 국어/영어/수학의 순서로 우선순위를 부여하면 수식이 저렇게 길어지게 됩니다. 더 좋은 방법을 발견할 수 없어 포기하고 있었는데, 지식인에 검색을 해보니 비슷한 고민을 하고 있는 사람의 질문에 답이 달려있었습니다. 참고: http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=102020101&docId=72155130&qb=7JeR7IWAIOuPmeygkOyekA==&enc=utf8&section=kin&rank=49&search_sort=0&spq=0 지식인 답변을 참고하여 수식을 만들어 보았습니다. 이것도 짧은 수식은 아닙니다만, 가중치를 부여하는 기준이 아무리 많아져도 수식의 길이가 더이상 길어지지 않는다 는 장점이 있습니다. 가중값을 구하는 열만 하나 만들면 되는 겁니다. 수식의 기본적인 틀은, 총점이 같은 인원수가 1이면 보통의 RANK함수를 사용

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

이미지
오늘은 SUMPRODUCT함수를 다룹니다. SUMPRODUCT함수는 매우 다양한 문제의 해결을 위해 광범위하게 응용될 수 있는 함수입니다. 오늘은 석차를 낼때 사용하는 예를 들어 설명해 보겠습니다. 주어진 배열에서 해당 요소를 모두 곱하고 그 곱의 합계를 반환합니다. 구문 SUMPRODUCT ( array1 ,array2,array3, ...) array1, array2, array3, ...   곱한 후 더할 값이 들어 있는 배열을 지정합니다. 2개에서 255개 사이의 배열을 사용할 수 있습니다. 주의 인수로 사용하는 배열의 차원은 모두 같아야 합니다. 차원이 같지 않으면 #VALUE! 오류 값이 반환됩니다. 숫자가 아닌 배열 항목은 0으로 처리됩니다. SUMPRODUCT함수는 다음에 이야기하게 될 "배열함수"와 깊은 관련이 있습니다. 영어로는 ARRAY인데, 학교 다닐때 "행렬"이라는 이름으로 배운 기억이 있는데 엑셀에서는 "배열"이라는 표현을 씁니다. 배열로 수식을 작성하는 것은 저도 아직 정확하게 이해는 하지 못했지만, 대충 감은 잡고 있는데, 그 감을 잡는데 이 SUMPROCUT함수가 도움이 되었습니다. 이 함수는 위에 있는 설명에도 있듯이, 주어진 배열을 모두 곱한 뒤에 그 합계를 반환하는 함수입니다. (2,4) 라는 배열과 (3,5) 라는 배열이 있을때, SUMPRODUCT({2,4},{3,5})라고 하면 2*3 + 4*5 를 계산하여 26을 반환합니다. 같은 식을 다음과 같이 표현할 수도 있습니다. A1:A2 의 배열과 B1:B2의 배열이 * (논리곱)으로 연결되어있습니다. 이때의 계산식은 위에서 설명한 것과 같이, 2*3 + 4*5 입니다. 그런데, 다음처럼 + (논리합)으로 연결되면 (2+3) * (4+5) 를 계산하여 14를 반환합니다. 여기까지 SUMPRODUCT함수의 기본적인 설명이