ETC

[2024 컴퓨터활용능력 1급 실기] 엑셀(Excel) 주요 개념 정리

HYEOKJUN 2025. 2. 10. 16:25
반응형
  • 시험 중 수시로 저장하기
  • 시험 중에 막히면 과감히 포기하고 다음 문제부터 풀기
  • 단축키를 활용하여 시간 조금이라도 줄이기
  • 특정 단축키가 동작하지 않는다면, 자판 배열Micorosoft 입력기로 설정되어 있는지 확인

 


 - 기본 작업 -


< 사용자 지정 서식 >

  • 셀 서식 단축키 : [Ctrl] + [1]

 

사용자 지정 표시 형식

(양수);(음수);(0);(문자) // 일반적인(조건을 지정하지 않을) 경우
[(색상1)][(조건1)](서식1);[(색상2)][(조건2)](서식2);[(색상3)](서식3) // 조건을 지정할 경우
  • 조건을 지정할 경우 최대 2개까지 지정 가능
  • 조건1부터 순차적으로 판단하며, 조건1과 조건2를 만족하지 않을 경우 (서식3)으로 표시

 

숫자/문자 서식

구분 12345678의 표시 예 서식
숫자 12,345,678 #,##0
12,345 #,##0,
12 #,##0,,
12345678.0 0.0
12,345,678.0 #,##0.0
12,345,678. #,##0.#
구분 "홍길동"의 표시 예 서식
문자

홍길동님 @"님"
홍길동                                                               님
("홍길동"은 가장 왼쪽에, "님"은 셀을 가득 채울 때까지 " "으로 채워진 후 가장 오른쪽에 표시)
@* "님"

 

날짜 서식

구분 "2025-02-05-수요일"의 표시 예 서식
2025 yyyy
25 yy
Februrary mmmm
Feb mmm
02 mm
2 m
05 dd
5 d
요일 Wednesday dddd
Wed ddd
수요일 aaaa
aaa

 

시간 서식

구분 "오전 6시 7분 3초"의 표시 예 서식
시간 06 hh
6 h
07 nn
7 n
03 ss
3 s
오전/오후 오전 또는 오후
(시간은 12시간제로 표시)
am/pm

 


< 고급 필터 >

  • 같은 행에 조건을 입력하면 AND 연산
  • 다른 행에 조건을 입력하면 OR 연산
  • 여러 개의 필드를 사용하는 조건을 입력할 때, 원본 데이터의 필드명과 다른 필드명을 사용
  • *, ?와 같은 와일드 카드 문자 사용 가능
  • 원본 데이터의 필드명 셀을 직접 복사해서 조건 셀 및 복사 셀 작성 

 


 - 계산 작업 -


< 셀 참조 >

  • 한 필드 내 여러 개의 수식을 작성할 때, 자동 채우기와 함께 사용하여 시간을 효율적으로 단축할 수 있는 기능
  • 참조 변환 키 : [F4]
구분 [A1] 셀에 대한 표시 예 설명
상대 참조 A1 입력한 셀을 이동시키면 이동시킨 같은 행, 열만큼 이동된 셀로 변경됨
절대 참조 $A$1 입력한 셀을 이동시켜도 항상 같은 셀을 가르킴
혼합 참조 A$1 입력한 셀을 이동시키면 이동시킨 같은 행만큼 이동된 셀로 변경되고 열은 고정됨
$A1 입력한 셀을 이동시키면 이동시킨 같은 열만큼 이동된 셀로 변경되고 행은 고정됨

 


< 연산자 >

  • 수식에서만 사용 가능하고, Viusal Basic에서는 안 되는 것(% 등)도 있음
구분 표시 설명
산술 연산자 + 더하기
- 빼기
* 곱하기
/ 나누기
% 백분율 (/100과 같음)
^ 거듭제곱
논리 연산자 > 크다 (초과)
>= 크거나 같다 (이상)
< 작다 (미만)
<= 작거나 같다 (이하)
= 같다
<> 같지 않다
문자열 결합 연산자 & 여러 문자, 숫자, 수식을 연결한 하나의 텍스트로 표시

 


< 논리 함수 >

함수 설명
AND(logical1, ...) logicalN들을 모두 만족하면 TRUE를, 그렇지 않으면 FALSE를 반환
OR(logical1, ...) logicalN 중 하나라도 만족하면 TRUE를, 그렇지 않으면 FALSE를 반환
NOT(logical) logical의 반대 논리값을 반환
IF(logical, value_if_true, value_if_false) logical이 TRUE라면 value_if_true을, 그렇지 않으면 value_if_false를 반환
IFS(logical1, value_if_true1, ...) logicalN이 TRUE라면 value_if_trueN을 반환
IFERROR(value, value_if_error) value가 오류 값이라면 value_if_error를 반환
SWITCH(expression, value1, result1, default_or_value2, ...) expressionvalueN이라면 resultN을 반환, valueN 중 해당하는 값이 없으면 default를 반환
(valueN과 resultN 두 개씩 짝지어서 작성, 하나만 작성하면 default로 인식)

 


< 정보 함수 >

함수 설명
ISBLANK(value) value가 비어 있으면 TRUE를, 그렇지 않으면 FALSE를 반환
ISERR(value) value가 오류라면 TRUE를, 그렇지 않으면 FALSE를 반환
ISERROR(value) value가 #N/A를 제외한 오류라면 TRUE를, 그렇지 않으면 FALSE를 반환
ISEVEN(value)
value가 짝수라면 TRUE를, 그렇지 않으면 FALSE를 반환
ISODD(value) value가 홀수라면 TRUE를, 그렇지 않으면 FALSE를 반환
ISLOGICAL(value)
value가 논리값이라면 TRUE를, 그렇지 않으면 FALSE를 반환
ISTEXT(value) value가 문자라면 TRUE를, 그렇지 않으면 FALSE를 반환
ISNONTEXT(value) value가 문자가 아니라면 TRUE를, 그렇지 않으면 FALSE를 반환
ISNUMBER(value) value가 숫자라면 TRUE를, 그렇지 않으면 FALSE를 반환
TYPE(value) value 숫자라면 1, 문자라면 2, 논리값이라면 4를 반환

 


< 계산/통계 함수 >

함수 설명
INT(number) number를 가장 가까운 정수로 반환
ABS(number) number의 절대값을 반환
MOD(number, divisor) number divisor로 나눈 나머지를 반환
 QUOTIENT(number, denominator) number denominator로 나눈 몫을 반환
ROUND(number, num_digits)
ROUNDDOWN(number, num_digits)
ROUNDUP(number, num_digits)
number를 자리수까지 반올림/내림/올림하여 반환
TRUNC(number, num_digits) number num_digits 자릿수 미만을 버린 값을 반환
SUMPRODUCT(array1, ...) arrayN들의 행렬 곱을 반환
SUM(number1, ...) numberN들의 합계를 반환
SUMIF(range, criteria, sum_range) range에서 criteria를 만족하는 상대 위치를 sum_range에 적용하여 합계를 반환
SUMIFS(sum_range, range1, criteria1, ...) rangeN에서 criteriaN을 모두 만족하는 상대 위치를 sum_range에 적용하여 합계를 반환
COUNT(value1, ...) valueN 중에 숫자가 있는 셀의 개수를 반환
COUNTA(value1, ...) valueN 중에 비어있지 않은 셀의 개수를 반환
COUNTBLANK(range) range에서 비어있는 셀의 개수를 반환
COUNTIF(range, criteria) range에서 criteria를 만족하는 셀의 개수를 반환
COUNTIFS(range1, criteria1, ...) rangeN에서 criteriaN을 모두 만족하는 셀의 개수를 반환
AVERAGE(number1, ...) numberN들의 평균을 반환
AVERAGEA(value1, ...) valueN들의 평균을 반환
(숫자가 아닌 셀도 숫자로 치환하여 계산)
AVERAGEIF(range, criteria, average_range) range에서 criteria를 만족하는 상대 위치를 average_range에 적용하여 평균을 반환
AVERAGEIFS(average_range, range1, criteria1, ...) rangeN에서 criteriaN을 모두 만족하는 상대 위치를 average_range에 적용하여 평균을 반환
MAX(number1, ...) numberN들의 최대값을 반환
MAXA(value1, ...) valueN들의 최대값을 반환
(숫자가 아닌 셀도 숫자로 치환하여 계산)
MIN(number1, ...) numberN들의 최소값을 반환
MINA(value1, ...) valueN들의 최소값을 반환
(숫자가 아닌 셀도 숫자로 치환하여 계산)
MEDIAN(number1, ...) numberN들의 중간값을 반환
LARGE(array, k) array에서 k번째로 큰 값을 반환
SMALL(array, k) array에서 k번째로 작은 값을 반환
MODE.SGNL(number1, ...) numberN 중 가장 빈도가 높은 값을 반환
★ FREQUENCY(data_array, bins_array)
data_array에서 나타나는 값의 빈도를 bins_array에 따라 구간 별로 나누어 구한 배열을 반환
(data_array : 빈도를 구할 실제 데이터 범위)
(bins_array : 구할 빈도가 나타난 표 헤더)
<반드시 값 적용 전, 표시할 범위를 모두 선택한 후 배열 수식으로 적용해야 함>
RANK.EQ(number, ref, order) ref 중에서 number의 백분위수를 반환
(order: 0 또는 생략일때, 내림차순(순위가 높을수록 큼)
1일때, 오름차순(순위가 낮을수록 작음))
STDEV.S(number1, ...) numberN들의 표준편차를 반환
VAR.S (number1, ...) numberN들의 분산을 반환

 


< 문자 함수 >

  • 문자열의 첫번째 인덱스는 1부터 시작함
함수 설명
LEFT(text, num_chars) text의 왼쪽부터 num_chars만큼의 문자열을 반환
RIGHT(text, num_chars) text의 오른쪽부터 num_chars만큼의 문자열을 반환
MID(text, start_num, num_chars) textstart_num부터 num_chars만큼의 문자열을 반환
LOWER(text) text를 모두 영소문자로 치환한 문자열을 반환
UPPER(text) text를 모두 영소문자로 치환한 문자열을 반환
PROPER(text) text에서 단어의 첫문자를 영대문자, 나머지는 영소문자로 치환한 문자열을 반환
LEN(text) text의 문자수를 반환
FIND(find_text, within_text) within_text에서 find_text를 찾아 인덱스를 반환
(대소문자 구분, 와일드카드 문자 사용 불가)
SEARCH(find_text, within_text) within_text에서 find_text를 찾아 인덱스를 반환
(대소문자 구분안함, 와일드카드 문자 사용 가능)
SUBSTITUTE(text, old_text, new_text) text에서 old_text를 찾아 new_text로 치환한 문자열을 반환
REPLACE(old_text, start_num, num_chars, new_text) old_text에서 인덱스 start_num인 문자부터 num_chars만큼의 문자열을 new_text로 치환한 문자열을 반환
FIXED(number, decimal, no_commas) number를 소수점 자리수 decimal까지 표시하고 no_commas에 따라 천만 단위 표시 기호(,)를 표시한 숫자를 문자열로 치환하여 반환
VALUE(text) 숫자로 작성된 문자열 text를 숫자로 치환하여 반환
REPT(text, number_times) textnumber_times만큼 반복한 문자열을 반환
CONCAT(text1, ...) textN들을 하나로 묶은 문자열을 반환

 


< 날짜/시간 함수 >

  • 날짜/시간의 serial_number에서 정수 부분은 날짜를, 소수점 이하 부분은 시간을 의미함
함수 설명
NOW() 현재 날짜와 시간을 반환
TODAY() 현재 날짜를 반환
DATE(year, month, day) yearmonthday일의 serial_number로 변환하여 반환
YEAR(serial_number) serial_number가 의미하는 날짜의 년도를 반환
MONTH(serial_number) serial_number가 의미하는 날짜의 월을 반환
DAY(serial_number)
serial_number가 의미하는 날짜의 일을 반환
TIME(hour, minute, second) hourminutesecond초의 serial_number로 변환하여 반환
HOUR(serial_number) serial_number가 의미하는 시간의 시를 반환
MINUTE(serial_number) serial_number가 의미하는 시간의 분을 반환
SECOND(serial_number) serial_number가 의미하는 시간의 초를 반환
WEEKDAY(serial_number, return_type) serial_number가 의미하는 날짜의 요일 번호를 반환
(return_type : 1 또는 생략일 경우 일요일이 1부터 시작,
2일 경우 월요일이 1부터 시작, 3일 경우 월요일이 0부터 시작)
DAYS(end_date, start_date) start_date부터 end_date까지의 일수를 반환
NETWORKDAYS(start_date, end_date, [holidays]) start_date부터 end_date까지의 holidays를 제외한 일수를 반환
EDATE(start_date, month) start_date부터 month개월 후의 serial_number를 반환
WORKDAY(start_date, days, [holidays]) start_date부터 holidays를 제외한 days일 후의 serial_number를 반환

 


< 데이터베이스 함수 >

  • 데이터베이스 함수의 매개변수는 항상  database, field, criteria
    • database에는 표의 모든 범위를 지정
    • field에는 값을 구할 필드명을 지정
    • criteria에는 추가 조건을 지정
함수 설명
DSUM(database, field, criteria) 표에서 조건에 맞는 값의 합계를 반환
DCOUNT(database, field, criteria) 표에서 조건에 맞고, 비어있지 않은 값의 개수를 반환
DAVERAGE(database, field, criteria) 표에서 조건에 맞는 값의 평균을 반환
DMAX(database, field, criteria) 표에서 조건에 맞는 값의 최대값을 반환
DMIN(database, field, criteria) 표에서 조건에 맞는 값의 최소값을 반환

 


< 찾기/참조 함수 >

함수 설명
CHOOSE(index_num, value1, ...) index_num이 N일때, valueN 값을 반환
LOOKUP(lookup_value, lookup_vector, result_vector) lookup_vector에서 lookup_value의 상대 위치를 result_vector에 적용한 값을 반환
★ XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode]) lookup_array에서 검색 모드에 따라 찾은 lookup_value의 상대 위치를 return_array에 적용한 값을 반환
(만약 값을 찾지 못했다면, if_not_found를 반환)
★HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup]) table_array 범위의 첫번째 행에서 lookup_value의 상대 위치의 열과 row_index_num 행에 해당하는 값을 table_array에서 찾아 반환
(row_index_num는 적어도 2부터 시작해야 함)
★VLOOKUP(lookup_value, table_array, column_index_num, [range_lookup]) table_array 범위의 첫번째 행에서 lookup_value의 상대 위치의 행과 column_index_num에 해당하는 값을 table_array에서 찾아 반환
(column_index_num 는 적어도 2부터 시작해야 함)
OFFSET(reference, rows, cols, [height], [width]) reference에서 rows행, cols열만큼 이동시키고 height, width 크기로 변환한 배열을 반환
(height, width를 지정하지 않으면 reference의 크기로 설정됨)
INDEX(array, row_num, col_num) array 내에서 상대 위치 row_num행, col_num열에 해당하는 값을 반환
MATCH(lookup_value, lookup_array, [match_type]) lookup_array에서 lookup_value의 상대 위치 값을 반환
XMATCH(lookup_value, lookup_array, [match_type], [search_mode]) lookup_array에서 lookup_value의 상대 위치 값을 반환
(MATCH와 검색 방법 및 검색 방향 지정 방식이 다름)

 


< 재무 함수 >

  • 이자율과 기간은 년이 아닌을 기준으로 계산함
    • 연 3% 이자율일 경우 3%/12로 계산
    • 2년간 납입일 경우 2*12로 계산
함수 설명
 FV(rate, nper, pmt, [pv], [type]) rate의 이자율을 기반으로 미래 가치를 계산한 결과를 반환
(type : 납입 시점, 0 또는 생략일 경우 기간 말, 1일 경우 기간 초로 계산)
PV(rate, nper, pmt, [fv], [type])  rate의 이자율을 기반으로 현재 가치를 계산한 결과를 반환
(type : 납입 시점, 0 또는 생략일 경우 기간 말, 1일 경우 기간 초로 계산)
PMT(rate, nper, pv, [fv], [type]) nper만큼의 금액을 납입하고 월 rate의 이자율이 적용되는 대출 상환금을 계산한 결과를 반환
(type : 납입 시점, 0 또는 생략일 경우 기간 말, 1일 경우 기간 초로 계산)

 


<배열 수식 >

  • 수식 작성 후 [Ctrl]+[Shift]+[Enter]
  • AND 조건은 *를, OR 조건은 +를 사용
    • 조건이 TRUE면 1, FALSE면 0이 되기 때문
  • 조건을 작성시 셀을 참조할 때 하나의 셀이 아닌 여러 셀을 참조할 것
구분 수식 설명
개수 { =SUM((조건)*1) } 조건을 만족하면 1을 더하여, 즉 조건을 만족하는 셀의 개수를 구함
{ =SUM(IF(조건,1)) }
{ =COUNT(IF(조건,1)) }
합계 { =SUM((조건)*(범위)) } 조건을 만족하는 합계 범위에 해당하는 값을 모두 더한 합계를 구함
{ =SUM(IF((조건, 범위)) }
최대 { =MAX((조건)*(범위)) } 조건을 만족하는 값에서 최대값을 구함
{ =MAX(IF((조건, 범위)) }
최소 { =MIN((조건)*(범위)) } 조건을 만족하는 값에서 최소값을 구함
{ =MIN(IF((조건, 범위)) }

 


< 사용자 정의 함수 >

  • 코드에서 영대소문자를 구분하지 않음

IF 문

If 조건식1 Then

ElseIf 조건식2 Then

Else

End If

 

SELECT 문

Select Case 식또는변수
	Case Is 초기값 To 종료값
    
	Case Is 조건식
    
	Case 값
    
	Case Else
    
Select End

 

FOR 문

For 변수=초기값 To 종료값 [Step 증가값]

Next 변수

 

 


 - 분석 작업 -


< 피벗 테이블 >

  • 외부 데이터의 확장자를 먼저 확인하고 [외부 데이터 가져오기] 메뉴 선택하기
  • 외부 데이터에서 가져올 확인하기
  • 표시된 결과 화면과 최대한 비슷하게 작성하기
  • 필드 이름 변경 여부 확인하기

 


< 데이터 유효성 검사 >

  • 표시된 결과 화면만 보고 작성할 수 있도록 연습하기
  • 보통 [결과], [설명 메시지], [오류 메시지]가 세트이니 유의하기

 


< 정렬 및 부분합 >

  • 부분합 작업 전에는 항상 정렬을 우선으로 하기 (부분합 문제는 부분합 문제 내에 정렬 조건이 표시되어 순서에 유의해야 함)
  • (필드1)별 (필드2)의 (함수)를 구할 때, [그룹화할 항목]은 (필드1), [부분합 계산 항목]은 (필드2), [사용할 함수]는 (함수)를 선택
  • 부분합을 2번 이상 지정할 때, 무조건 문제에 표시된 순서대로 진행하기

 


< 데이터 표 >

  • 완성된 표의 결과 값으로 보이는 셀의 수식을 복사 및 붙여넣기 하거나 직접 채울 표의 왼쪽 상단의 비어있는 셀에 작성
  • 데이터 표의 지정 영역은 행 및 열 레이블을 포함
  • 단일 데이터 표에서는 [행 입력 셀]이나 [열 입력 셀] 중 하나만 작성함

 


< 통합 >

  • 통합 표를 작성할 영역의 행 및 열 레이블을 포함
  • 왼쪽 열에 이미 작성이 되어 있다면 [사용할 레이블]의 [첫 행]과 [왼쪽 열]을 모두 체크
  • [왼쪽 열]을 이용하면 와일드 카드 문자를 사용하여 데이터를 통합할 수 있음

 


< 시나리오 >

  • [변경 셀]에 대한 값을 변경할 때 절대 값이 아닌 상대 값이 주어지는 경우 현재 값에 대한 상대 값을 계산하여 작성할 것
  • [결과 셀]을 입력할 때, 셀 영역으로 입력하지 말고 [Ctrl]과 함께 하나하나 선택할 것 
  • 작성 후, 시나리오 요약 보고서 시트가 원본 시트의 바로 왼쪽에 위치해 있는지 확인하기 (보통 바로 왼쪽에 생성됨)

 


 - 기타 작업 -


< 차트 >

  • 각 옵션이 어디에 위치해 있는지 확인하는 연습하기
  • 축 단위의 표시 형식을 설정할 때, 2가지 방법 중 적절한 방법 선택
    • [축 서식] > [축 옵션] > [표시 단위] 이용하기 (데이터 레이블에도 적용됨)
    • [축 서식] > [표시 형식] 이용하기 (데이터 레이블에는 적용되지 않음)

 


< 매크로 >

  • 기록이 모두 완료된 후, 반드시 [기록 중지]를 눌러 매크로 기록 종료하기
  • 매크로 이름은 중복될 수 없으므로, 매크로 기록을 수정할 경우 같은 이름으로 기록하면 덮어쓸 수 있음
  • 사용자 지정 표시 형식에 대한 매크로 문제일 경우, 매크로 기록 전에 미리 표시 형식 만들어 놓기

 


< 프로시저 >

  • UserForm_Initialize에서는 콤보 상자 및 텍스트 상자의 값을 초기화
  • 보통 폼 버튼, UserForm_Initialize, 메인 등록 버튼, 종료 버튼의 프로시저 작성이 세트이니 유의하기

 

With  문

With cmb상자
	.AddItem "1"
	.AddItem "2"
	.AddItem "3"
End With

 

셀 참조

'A2 셀을 참조하는 방법'
[A2]
Cells(1, 2)
Range("A2")

'A1:B10 셀을 참조하는 방법'
Range("A1:B10")

 

셀 폰트

Range("A2").Font.Name = "궁서체"
Range("A2").Font.Bold = True
Range("A2").Font.Size = 10

 

콤보 상자

cmb상자.RowSource = "A1:B10"         'cmb상자가 표시하는 영역 설정'
cmb상자.ColumnCount = 2              'cmb상자가 표시하는 열의 수 설정'
cmb상자.Value = 123                  'cmb상자가 표시하는 값'
cmb상자.ListIndex = 3                'cmb상자의 선택된 값의 인덱스(0부터 시작)'
cmb상자.List(cmb상자.ListIndex, 0)   'cmb상자의 선택된 행, 첫번째 열에 해당하는 값을 의미 ((0, 0)부터 시작)'
cmb상자.SetFocus                     'cmb상자 컨트로에 포커스를 옮김'

 

텍스트 상자

txt상자.Value = 123                  'txt상자가 표시하는 값(문자 형식)'

 

옵션 단추

opt단추.Value = True                 'opt단추가 선택된 상태'
opt단추.Value = False                'opt단추가 선택 해제된 상태'

 

리스트 추가하기

'표가 A4부터 시작할 경우("[표1]"과 같은 표시 셀도 포함)'
i = Range("A4").CurrentRegion.Rows.Count + 4

Cells(i, 1) = ...

 

메시지 박스

MsgBox "프롬프트 텍스트", 버튼스타일 + 버튼선택, "제목 텍스트"

<버튼스타일>
vbOKOnly : 확인
vbOKCancel : 확인 + 취소
vbYesNo : 예 + 아니오
vbYesNoCancel : 예 + 아니오 + 취소

<버튼선택>
vbDefaultButton1 : 첫 번째 버튼이 선택된 상태
vbDefaultButton2 : 두 번째 버튼이 선택된 상태

 

폼 종료

Unload Me                            '현재 폼을 닫음'

 

 

반응형