1일1함수 (43) IF함수 : 조건에 따른 값 구하기

이미지
오늘은 너무나도 익숙한 IF함수입니다. 요즘 들어 날로 먹는 경향이 많다고 생각하시는 분이 있을까봐서…^^; 오늘은 사 소한 주의사항 한가지를 짚고 넘어가겠습니다. 구문 IF ( logical_test , value_if_true ,value_if_false) logical_test   TRUE나 FALSE로 평가될 수 있는 임의의 값 또는 식입니다. 예를 들어 A10=100과 같은 논리 식에서 A10 셀이 100이면 이 식은 TRUE가 되고 100이 아니면 FALSE가 됩니다. 이 인수에는 모든  비교 계산 연산자 를 사용할 수 있습니다. value_if_true   logical_test가 TRUE인 경우에 반환되는 값입니다. 예를 들어 이 인수가 "예산 내"라는 텍스트 문자열이고 logical_test 인수가 TRUE이면 IF 함수는 "예산 내"라는 텍스트를 표시합니다.  logical_test가 TRUE이고 value_if_true가 비어 있으면 이 인수는 0을 반환합니다.  TRUE라는 단어를 표시하려면 이 인수에 대해 논리값 TRUE를 사용해야 합니다. value_if_true는 또 다른 수식이 될 수 있습니다. value_if_false   logical_test가 FALSE인 경우에 반환되는 값입니다. 예를 들어 이 인수가 "예산 초과"라는 문자열이고 logical_test 인수가 FALSE일 경우 IF 함수는 "예산 초과"라는 텍스트를 표시합니다. logical_test가 FALSE이고 value_if_false를 생략한 경우(즉, value_if_true 뒤에 쉼표가 없는 경우) FALSE 논리값이 반환됩니다.  logical_test가 FALSE이고 value_if_false가 공백인 경우(즉, value_if_true 뒤에 괄호 다음에 쉼표가 있는 경우) 0이 값으로 반환됩니다 . value_if_false는 또 다른 수식이 될 수도 있습니다. 주의

1일1함수 (42) LARGE, SMALL함수 : 범위중 k번째로 큰/작은 값찾기

이미지
오늘도 두 개의 함수를 한꺼번에 다루겠습니다. 범위중에서 k번째로 큰 값을 찾는 LARGE함수와 k번째로 작은 값을 찾는 SMALL함수입니다. 구문도 간단합니다. LARGE ( array , k ) array   k번째로 큰 값을 확인할 데이터 배열 또는 범위입니다. k   데이터의 배열이나 셀 범위에서 가장 큰 값을 기준으로 한 상대 순위입니다. SMALL( array , k ) array   k번째로 작은 값을 확인할 데이터 배열 또는 범위입니다. k   데이터의 배열이나 셀 범위에서 가장 작은 값을 기준으로 한 상대 순위입니다. SMALL함수는 LARGE함수를 알면 저절로 알게 되는 것이니까, 여기서는 LARGE함수만 예를 들어 설명하겠습니다. 학생들의 점수중에서 제일 높은 점수, 두번째로 높은 점수, 세번째로 높은 점수를 구하려고 합니다. 제일 높은 점수를 구하는 D2셀에는 다음 수식이 들어갑니다. =LARGE(B2:B11,C2) C2셀은  셀서식에서 사용자정의 를 하여 "0위"라고 지정해두었습니다. 따라서, 화면상에는 "1위"로 표시되지만, 실제로 셀안에는 1이라는 숫자만 들어가 있습니다. 그러므로, 위의 수식은 B2:B11의 범위중에서 첫번째로 큰 값을 찾는다는 의미입니다. 그 아래로 끌어채우기한 결과는 각각 B2:B11의 범위중에서 두번째와 세번째로 큰 값을 찾는다는 의미입니다. 여기서 LARGE함수를 사용하여 1,2,3위의 점수를 찾는 예를 들었지만, 실제로 LARGE함수와 SMALL 함수는 이런 용도로는 거의 사용되지 않습니다. 다른 수식에서 지정한 조건에 맞는 셀들을 빈칸 없이 차례로 불러오기할 때 주로 사용합니다. 그것은 다음 기회에 하도록 하고, 오늘은 이만…^^;

1일1함수 (41) MODE함수 : 제일 많이 등장하는 값 찾기

이미지
오늘은 MODE함수입니다. 1일1함수 시리즈에서 제일 처음으로 다루었던 함수가 MOD함수 였습니다. 그것과 헷갈리시면 안됩니다^^ 구문 MODE ( number1 ,number2,...) number1, number2, ...   최빈값을 계산할 인수로, 1개에서 255개까지 사용할 수 있습니다. 쉼표로 구분된 인수 대신 단일 배열이나 배열에 대한 참조를 사용할 수도 있습니다. 주의 인수는 숫자이거나 숫자를 포함한 이름, 배열 또는 참조 영역일 수 있습니다. 배열 또는 참조 인수에 텍스트, 논리값 또는 빈 셀이 있는 경우 이러한 값은 포함되지 않지만 값이 0인 셀은 포함됩니다. 인수가 오류 값이거나 숫자로 변환할 수 없는 텍스트이면 오류가 발생합니다. 데이터 집합에 중복 데이터 요소가 없으면 #N/A 오류 값이 반환됩니다.  참고    MODE 함수는 통계 분포에서 숫자의 중심 그룹 위치를 나타내는 중심 경향성을 측정하는 데 사용됩니다. 중심 경향성을 측정하는 가장 일반적인 세 가지 방법은 다음과 같습니다. AVERAGE   산술 평균이며 여러 수를 더한 다음 더한 수의 개수로 나누어 계산됩니다. 예를 들어 2, 3, 3, 5, 7, 10의 평균은 30을 6으로 나눈 5입니다. MEDIAN   여러 숫자의 중간 숫자입니다. 즉, 숫자의 반은 중간값보다 크고 나머지 반은 중간값보다 작습니다. 예를 들어 2, 3, 3, 5, 7, 10의 중간값은 4입니다. MODE   숫자 그룹에서 가장 많이 나타나는 숫자입니다. 예를 들어 2, 3, 3, 5, 7, 10의 최빈값은 3입니다.   산술평균, 중간값, 최빈값…. 수학시간에 배운 기억이 어렴풋이 나는군요.^^; 수학여행을 어디로갈지 설문조사를 실시했다고 합시다. 2위,3위는 필요없고, 제일 많이 학생들이 선택한 곳만을 보고 싶다면 MODE함수를 사용할 수 있겠습니다. 1번은 제주도, 2번은 설악산, 3번은 거제도로

1일1함수 (40) MAX함수, MIN함수 : 최소값과 최대값

이미지
오늘도 쉬운 함수 두 개를 다루겠습니다. 너무나 쉬워서 다루기가 민망할 정도인데요^^; 최소값과 최대값을 구하는 함수인 MIN, MAX함수입니다. 점수중에서 최고점과 최하점을 구하는 수식은 다음과 같습니다. 최고점 =MAX(B2:B11) 최하점 =MIN(B2:B11) 아울러, 최고점과 최하점의 인원수를 구하는 수식은 다음과 같습니다 최고점자수 =COUNTIF(B2:B11,MAX(B2:B11)) 최하점자수 =COUNTIF(B2:B11,MIN(B2:B11)) 물론, 위의 그림처럼 표를 만들었다면 그 옆의 최고점수와 최하점수가 출력된 E2,E3셀을 참조하여 수식을 만드는 것이 좋겠지요. 최고점자수 =COUNTIF(B2:B11,E2) 최하점자수 =COUNTIF(B2:B11,E3) 간단한 함수지만 다른 수식과 결합하여 큰 역할을 할때가 있을겁니다^^

1일1함수 (39) OFFSET함수 : 특정위치에서 얼마만큼 떨어진 곳을 참조할때

이미지
오늘은 OFFSET함수입니다. 약간 어려울수도 있지만, 고급의 기능을 수행하기 위해서는 꼭 알아야하는 함수입니다. 오늘은 간단한 설명만 하고, 다음에 구체적인 상황에서 사용할 때 다시 설명하도록 하겠습니다. 구문 OFFSET ( reference , rows , cols ,height,width) reference   오프셋의 기반으로 삼을 참조입니다. reference는 셀 또는 인접한 셀 범위를 참조해야 합니다. 그렇지 않으면 #VALUE! 오류 값이 반환됩니다. rows   왼쪽 위에 있는 셀이 참조할 위 또는 아래에 있는 행의 수입니다. rows 인수로 5를 사용하면 참조의 왼쪽 위 셀이 참조보다 5행 아래로 지정됩니다. rows는 양수(시작 참조보다 아래) 또는 음수(시작 참조보다 위)일 수 있습니다. cols   결과의 왼쪽 위 셀이 참조할 왼쪽 또는 오른쪽에 있는 열의 수입니다. cols 인수로 5를 사용하면 참조의 왼쪽 위 셀이 참조에서 5열 오른쪽으로 지정됩니다. cols는 양수(시작 참조에서 오른쪽) 또는 음수(시작 참조에서 왼쪽)일 수 있습니다. height   반환되는 참조의 높이(단위: 행 수)입니다. height는 양수여야 합니다. width   반환되는 참조의 너비(단위: 열 수)입니다. width는 양수여야 합니다. 주의 rows 및 cols 오프셋이 워크시트 가장자리 위를 참조하는 경우 OFFSET은 #REF! 오류 값을 반환합니다. height 또는 width를 생략하면 높이나 너비가 reference와 같은 것으로 간주됩니다. OFFSET은 셀을 실제로 이동하거나 선택을 변경하지 않으며 단지 참조를 구할 뿐입니다. OFFSET은 참조 인수를 기대하는 함수로 사용될 수 있습니다. 예를 들어 수식 SUM(OFFSET(C2,1,2,3,1))은 셀 C2의 아래에 1행이 있고 오른쪽에 2열이 있는 3행 x 1열 범위의 합계를 계산합니다. 구문이나 주의사항등은 다음에 다루게 될 일이 생기게 될지도 모

1일1함수 (38) WON/ DOLLAR함수 : 숫자에 통화기호 적용

이미지
오늘은 쉽고 간단한 함수를 두 개 하려합니다. WON함수와 DOLLAR함수로, 숫자앞에 통화표시 ( ₩ ,$)를 붙여주는 함수입니다. WON ( number ,decimals) number   숫자, 숫자가 들어 있는 셀에 대한 참조 또는 숫자로 계산되는 수식입니다. decimals   소수점 이하의 자릿수로서 decimals가 음수이면 number가 소수점 왼쪽으로 반올림됩니다. decimals를 생략하면 2로 간주됩니다. DOLLAR함수의 도움말은 한글엑셀에서는 나오지 않습니다. 하지만 사용법은 WON과 같습니다. 지정 자릿수에서 반올림하는 것을 지정하는 decimals인수도 WON과 DOLLAR가 차이가 있는 것 같습니다. 도움말에서는 생략하면 2로 간주하므로, 소수점뒤에 두 자리까지 표시하게 되어있습니다만, DOLLAR의 경우는 제대로 표시가 되는 반면, WON의 경우는 원단위에서 끝납니다. 아마도 돈의 단위를 표시하는 문화가 달라서인 것 같습니다. 영미권에서는 센트자리까지 표시하는 경우가 많지만, 우리는 원단위밑의 전( 錢) 단위까지 표시하는 일은 드물지요. 그런데, 통화기호를 표시하는 것은 셀서식에서도 지정 가능합니다.  지난 번에 셀서식을 지정하면 편리하다는 내용 을 쓴 적이 있습니다. 마찬가지로, 해당 셀을 오른쪽 클릭하여 "셀서식"을 클릭하고 "표시형식"에서 "통화"를 선택한 다음, 소수점 자리수와 통화기호와 음수일 때 표시방법등을 지정하면 통화기호가 붙습니다. 하지만, 백단위에서 반올림하기위해 -3을 입력하면 위와 같은 오류메시지가 뜹니다. 즉, 셀서식에서는 백단위 반올림을 표시할 수가 없습니다.  통화기호를 표시하면서 동시에 지정단위수에서 반올림을 시키고 싶으면 , WON함수나 DOLLAR함수를 사용하면 편리합니다.   2009/04/23 - [컴퓨터/엑셀] - 1일1함수 (20) MI

1일1함수 (37) SUBSTITUTE 함수 : 특정 문자열을 다른 문자열로 바꾸기

이미지
지난 번에는 REPLACE함수를 사용해서, 특정위치에 있는 문자열 을 다른 문자열로 바꾸었습니다. 오늘 다루게 될 SUBSTITUTE함수는 특정한 문자열을 찾아, 다른 문자열로 바꾸는 함수 입니다. 구문 SUBSTITUTE ( text , old_text , new_text ,instance_num) text   문자를 대체할 텍스트가 포함된 셀의 참조 또는 텍스트입니다. old_text   바꿀 텍스트입니다. new_text   old_text를 대신할 텍스트입니다. instance_num    text에서 몇 번째에 있는 old_text를 new_text로 바꿀 것인지를 지정하는 수입니다 . instance_num을 지정하면 해당하는 위치에 있는 old_text만 바뀝니다. 그렇지 않으면 모든 old_text가 new_text로 바뀝니다. 다음과 같이 전화번호의 국번표시를 바꾸는 함수를 생각해 봅시다. SUBSTITUTE를 적용하니까 앞의 괄호는 바뀌지 않았습니다. 위의 수식으로 나온 결과값에다 한번 더 SUBSTITUTE를 적용하여, 앞에 있는 괄호를 공백으로 바꾸는 수식을 만들어 봅시다. 사실, 이것은 단축키 CTRL+F를 누르면 나오는 "찾기-바꾸기"와 유사한 기능입니다. CTRL+F를 눌러서 ")"를 찾아 "–"로 바꾸어주고 난뒤, "("를 찾아 빈칸으로 바꾸는 작업을 해도 됩니다. 하지만, CTRL+F로는 할 수 없는 경우도 있습니다. 위의 작업을 거꾸로 한다고 가정합시다. 즉, 02-222-2222라는 전화번호를 (02)-222-2222로 바꾼다고 해봅시다. 위의 그림처럼 CTRL+F를 하여 찾을내용을"–", 바꿀내용을" )"로 입력한 뒤 "모두바꾸기"하면 02)222)2222가 됩니다. 물론, 02뒤에 있는 "–"에 커서가 오면