본문 바로가기

Cerificate/컴퓨터활용능력

[컴퓨터활용능력 1급 실기] 시험 후기 및 핵심 정리 #12 (2020, 2022 시나공 기출문제집 풀이)

728x90
반응형

  4번째 도전마저 실패로군요. 3회차 때보다 안정적으로 합격선에 안착할 줄 알았더니 제 오산이었습니다. 지난 시험에 비해 점수는 10점이 올랐지만, 분석 10점과 차트, 그리고 계산 1문제에서 아쉬움이 남습니다.  

 

  탈락한 성적표를 마주하니 기분이 썩 좋지 않습니다. 그래도 현실을 무시해선 성장할 수 없겠죠. 더 단단하게 단련해서 기필코 손에 넣도록 하겠습니다. 즉흥적인 풀이에서 전략적인 접근으로 시험 전략도 수정하겠습니다. 이건희 선배 말처럼 처자식빼고 다 바꿔보겠습니다. 더 이상은 자존심이 허락지 않는군요.


  <스프레드시트 점수 구성 및 시간 할애>

 

1. 기본작업 (15점) - 고급 필터, 조건부 서식, 페이지 수정(보호, 레이아웃) - 5/45 - 목표 : 15점

2. 계산작업 (30점) - 15/45 (사용자 정의 함수를 먼저 풀었으나 이것도 마지막으로) - 목표 : 30점

3. 분석작업 (20점) - 피벗 테이블, 데이터 유효성 검사, 시나리오 등 - 10/45 - 목표 20점

4. 기타작업 (35점) - 매크로, 차트 수정, 프로시저 작성 - 10/45 : 목표 25점

 

* 1, 3, 4를 다 풀고 2번 들어갈 때, 20분이 남으면 예상 범위.

* 단, 시간에 주의하되 쫓겨서는 안 됨.

* 나머지 5분은 검토 및 부족한 부분에 할당하고 총 90점으로 합격.

 


 

 

[스프레드시트]

 

- 기본작업 - 

 

  • 고급서식에서 and와 or의 적용 범위가 모호할 때는 쉼표의 위치를 찾자
  • FIND( 찾을 문자, 문자열, [시작 위치])는 해당 문자의 위치를 반환한다. 따라서 1보다 크다고 설정해야 find로 해당 문자열에서 존재하는지 찾을 수 있다.
  • 조건부 서식에 'and'없이 두 개 이상의 조건을 만족시키려면, 조건 1과 조건 2를 괄호로 묶고 *로 이어주면 된다.
  • Countif(범위, 조건) 입력 시, 만족하는 개수 추출
=AND(OR(B3="문예창작과",B3="문헌정보학과"),COUNTIF(F3:H3,">=80")=3)

 

  • Rank.EQ 활용
    • 6월 이전, 10위 이내

 

  • 페이지 나누기 : 나누는 기준의 다음 셀에서 페이지 나누기 삽입 클릭

 

- 계산작업 - 

 

  • 오답 방지를 위해 기본적으로 함수의 작은 범위에서부터 풀이를 시작한다.
  • Dcounta와 같은 데이터베이스 함수는 조건을 기입해야 하고, 컬럼명과 조건을 세로로 적는다. 

 

  • Sumproduct, Match, Offset (고난이도)
    • Offset(범위, 행, 열, 높이, 너비) : 선택한 범위에서 지정한 행과 열만큼 떨어진 곳의 데이터 반환
오답 : =SUMPRODUCT(G3:J3,OFFSET($F$32:$J$36, MATCH(E3,$F$33:$F$36,0) + 1, 4))
정답 : =SUMPRODUCT(G4:J4,OFFSET($F$32, MATCH(E4,$F$33:$F$36,0),1,1,4))

 

  • Search 함수
    • 해당 문자가 있는 시작 위치를 반환

출처 :&nbsp;https://www.oppadu.com/%EC%97%91%EC%85%80-search-%ED%95%A8%EC%88%98/

 

  • Index, Match
    • index 함수는 셀의 데이터를, match함수는 셀의 위치를 출력한다.
      • index함수의 parameter로 컬럼을 제외한 데이터의 범위를 선택한다.
    • Case1 : Match로 Min 값을 찾을 때는 0을 넣는다. (정확히 찾기!)
    • Case2 : Index 범위에는 컬럼을 넣지 않는다! 

case1
case2. Index의 범위로 컬럼이 있는 A열이 아닌 B열부터 들어가야 함.

  • Index, Match
    • Case 3 : Index, Match, Max
    • Max도 Sum, Average처럼 조건를 정하고, 최대값을 구할 범위를 정하면 된다.
오답 : =INDEX($A$3:$G$20,MATCH(MAX($G$3:$G$20),$G$3:$G$20),1)
정답 : =INDEX($A$3:$G$20,MATCH(MAX(($D$3:$D$20=$A24)*$G$3:$G$20),($D$3:$D$20=$A24)*$G$3:$G$20,0),1)

 

  • 배열수식1
    • Average, If, Find, Iferror (고난이도)
오답 : =AVERAGE(IF(($D$3:$D$34=$A38)*(FIND("정보",$A$3:$A$34)>=1),$G$3:$G$34))

 

정답: =AVERAGE(IF(($D$3:$D$34=$A38)*IFERROR(FIND("정보",$A$3:$A$34)>=1,FALSE),$G$3:$G$34))
    • iferror를 넣어서 오류가 발생하는 경우, False값을 주어 연산이 가능하게 하는 듯?
  • 배열수식2
    • Average, If, Round
    • 배열수식 조건에서 Or에 해당하는 기호는 +
    • 나눗셈을 하고자 하는 범위를 전체 선택
오답 : =ROUND(AVERAGE(IF(($D$3:$D$29=$B33)*(OR($E$3:$E$29 = "사원", $E$3:$E$29 = "대리")),$G$3:$J$3)), 1)
정답: =ROUND(AVERAGE(IF(($D$3:$D$29=$B33)*(($E$3:$E$29 = "사원")+($E$3:$E$29 = "대리")),$G$3:$J$29)), 1) 

 

  • 배열수식3
    • Large, if
    • 위와 마찬가지로 범위 전체를 지정해야 함.
오답 : =LARGE(IF(($D$3:$D$29=$B33),$G$3:$J$3),1)
정답 : =LARGE(IF(($D$3:$D$29=$B33),$G$3:$J$29),1)

 

  • Hlookup, Match 활용 (초고난이도)
    • 하나의 요소와 나머지 요소의 대표값 (ex - 합정과 기타)로 분류된 경우 
    • 내림차순의 첫째값, 둘째값으로 범위 지정 후, -1 옵션 선택
오답 : = HLOOKUP(C3,$E$23:$I$25,MATCH(E3,$F$23:$I$23,1),0)
정답 : = E3*HLOOKUP(E3,$E$23:$I$25,MATCH(C3,{"합정","신촌"},-1)+1)

 

  • Countifs : 조건의 표기에 주의
오답 : =COUNTIFS($D$3:$D$20,"=강석희",$E$3:$E$20,G23:I23)&"건"
정답 : =COUNTIFS($D$3:$D$20,"강석희",$E$3:$E$20,"<="&G23)&"건"

 

  • If, Left, Countif (초고난이도)
    • M으로 시작할 때와 C로 시작할 때, 그리고 M으로 시작하지 아니할 때에서 C로 시작할 때를 차감(M 시작도 아니고 C 시작도 아님).
    • Countif는 누적 개수를 구해야 하기 때문에 셀의 범위를 하나가 아닌 여러 개로 지정.
= IF(LEFT(B15, 1) = "M", "뮤지컬(" & COUNTIF($B$15:B15,"M*") & ")", IF(LEFT(B15, 1) = "C", "콘서트(" & COUNTIF($B$15:B15,"C*") & ")", "그외(" & COUNTIF($B$15:B15,"<>M*") - COUNTIF($B$15:B15,"C*")& ")"))

 

  • Averageifs
    • 조건이 두개 이상일 확률이 높으므로 항상 주의할 것!
=AVERAGEIFS($F$15:$F$40, $A$15:$A$40, A3,$E$15:$E$40,">=5")

 

  • ALT + F11로 VBE에 빠르게 들어갈 수 있다.
  • 사용자 정의 함수에서 Select문을 요구하면, 첫줄에 Select Case로 변수 지정하고, 다음 줄은 들여쓰기하여 Case is 조건과 출력값을 지정한다.

 

  • 사용자 정의 함수 1
    • Select 활용
    • 비교 연산자와 To, 모두 활용 가능함.
Public Function fn비고(고객코드)

    Select Case Mid(고객코드, 5, 1)
        Case Is <= 3
            fn비고 = "우수고객"
        Case Is <= 6
            fn비고 = "신규고객"
        Case Else
            fn비고 = ""
    End Select
    
End Function
Public Function fn비고(고객코드)

    Select Case Mid(고객코드, 5, 1)
        Case 1 to 3
            fn비고 = "우수고객"
        Case 4 to 6
            fn비고 = "신규고객"
        Case Else
            fn비고 = ""
    End Select
    
End Function

 

  • 사용자 정의 함수 2 
    • VBE가 상태가 안 좋으면, 제대로 입력해도 적용이 안되는 듯? 뭐가 문제임?
Public Function fn할인액(구분, 총금액)

    If Right(구분, 3) = "뮤지컬" And 총금액 >= 3000000 Then
        fn할인액 = 총금액 * 0.15
    ElseIf Right(구분, 3) = "콘서트" And 총금액 >= 3000000 Then
        fn할인액 = 총금액 * 0.1
    Else
        fn할인액 = ""
    End If
        
End Function

 

  • 사용자 정의 함수3
    • 셀 주소를 넣을 때는 []로 묶음/
    • 같은 시트에서 넣을 때는 시트명없이도 동일 결과 출력.
Public Function fn할인액(판매일, 금액)

    If 판매일 <= [계산작업!J2] Then
        fn할인액 = 금액 * 0.15
    Else
        fn할인액 = 0
    End If
    
End Function

 

  • 사용자 정의 함수4 (고난이도
    • For문 사용
    • mid와 len을 혼용하고 *1을 해주어 숫자 취급
    • a라는 변수를 1부터 K(mg)까지 반복
Public Function fn비고(제품명)

    If Mid(제품명, Len(제품명) - 4, 3) * 1 >= 100 Then
        For a = 1 To Mid(제품명, Len(제품명) - 4, 3) / 100
            fn비고 = fn비고 & "■"
        Next a
    Else
        fn비고 = ""
    End If

End Function

 

  • 사용자정의함수5
    • int를 왜 넣지?
    • 정수 처리 안 해도 계산되는데다 불과 1차이인데? 이거 반올림 차이로 보이고...
    • 실제 시험에서도 이런 걸로 틀리다고 하나? 

 

 

- 분석작업 -

 

  • 피벗 테이블 보고서 위치 주의 : 컬럼을 기준으로 생각.
  • 개수, 합계 등으로 나타내려면 카테고리에 넣어주어야 함.
  • 피벗 테이블 보고서에서 특정 그룹을 별도의 시트로 만들려면, 빈 셀에서 더블 클릭하면 된다.

국어 그룹의 상세 정보가 담긴 시트가 초록색으로 강조된 빈 셀을 더블 클릭하는 것으로 생성된다.

 

  • 데이터 유효성 검사 - 데이터표
    • 데이터표
    • 1) 행과 열이 교차하는 표의 첫번째 셀에 총점을 입력.
    • 2) 표 전체를 범위로 잡고, 행에는 어학테스트의 점수, 열에는 학과성적의 점수를 입력.

데이터 표

  • 데이터 유효성 검사 - 필터
    • 조건식 설정 : 제한대상을 사용자 지정으로 하고, 식 입력
= len(B4) = 6

 

  • 데이터 유효성 검사 - 데이터 통합
    • 데이터 유효성 검사 매번 틀리게 나오는데 채점 프로그램의 문제로 추정
    • 빈 공간이 생기려면, 원본 데이터에 연결 옵션 체크

 

 

 

  • 조건부 서식 - 데이터 통합
    • 데이터 통합
      • 1) 조건을 적고, 새로 들어갈 표를 모두 선택
      • 2) 참조할 영역을 컬럼명 포함해 모두 지정하고, 사용할 레이블에서 첫행, 왼쪽열 전부 체크
  • 목표값 찾기
    • 1) 가상분석 - 목표값 찾기
    • 2) 수식셀과 찾는 값 (목표) + 값을 바꿀 셀 지정 (목표를 구하기 위해 변화될 값) 

 

- 기타작업 -

 

  • 차트
    • 백분율로 나타내면 되는 건데... 이건 좀 억까네...

 

  • 매크로 (채점프로그램이 잘 인식하지 못하는 듯)
    • Case1 : 숫자와 텍스트를 모두 표기해야할 때는 숫자, 텍스트 순으로 조건 부여.
[빨강][>=0.03]"검은별"0.0%;[파랑][>=0.025]"하얀별"0.0%;0.0%;"당구장"
    • Case2 : 괄호는 굳이 따옴표로 넣어주지 않아도 되는 것으로 보임. (동일 결과 출력)
[빨강][>=95]"A+("0.0")";[>=90]"A";""
[빨강][>=95]"A+"(0.0);[>=90]"A";""
    • Case3 : 특정 문자로 채우기 (공백도 가능, * 다음의 문자로 셀을 가득 채움)
    • Case4 : 양수, 음수, 0, 텍스트 => 순서대로 입력값을 넣자!

Case3

오답 : [>0]"남성";[<0]"여성";[=0]"공통";"반품" / 결과가 안 나옴....
정답 : "남";"여";"공";"반"

 

  •  VBE
    • 폼이 열리지 않는 경우가 종종 발생.
    • Date : 시스템의 현재 날짜를 출력하는 명령어
    • Additem : 셀에 입력되지 않은 데이터를 직접 추가하는 경우에 사용.
    • 사용자 정의 폼이 메모리에서 제거되도록 작성 : 그냥 Unload me
    • [셀].Currentregion.Rows.Count : [셀]과 이어진 범위의 행수를 구함

 

  • 타 시트에서 소스를 가져와 지정하는 경우
Private Sub UserForm_Initialize()

    cmb학과명.RowSource = "'기타작업-2'!i5:i8"
    opt1학년.Value = True
    
End Sub

 

  • 해당 폼의 캡션 속성을 이용한 메시지 출력
Private Sub cmd종료_Click()

    MsgBox Me.Caption & "폼을 종료합니다."
    Unload Me
    
End Sub

 

  • 워크시트 Change
    • 데이터 변경 시, 해당 셀로 셀 포인터 이동 및 폰트 변경
target.activate
target.font.name = "굴림"
target.font.size = 13

 

  • With 구문 : 반복되는 변수를 지정하고, 뒤의 명령어만 따로 입력.
Private Sub UserForm_Initialize()

    With cmb분류
        .AddItem "사회과학"
        .AddItem "소설"
        .AddItem "취미/레저"
        .AddItem "컴퓨터"
    End With
    
End Sub

 

  • 목록의 첫번째 데이터가 선택 (Initialize)
    • ooo.list(0,0) 
Private Sub UserForm_Initialize()

    lst강의목록.RowSource = "l4:l12"
    lst강의목록 = lst강의목록.List(0, 0)
    
End Sub

 

 

  • 채점 프로그램 오류
    • 주문날짜.value로 안 써도 잘 들어갔는데 왜 틀리다고 하는거지?
    • 채점프로그램 매크로, 데이터 유효성 검사, VBE 하자 많은 듯

 

[액세스]

 

- DB구축-

 

  •  데이터 가져오기 
    • 범위로 정의된 이름 '~~~'의 내용 : '이름 있는 범위 표시'체크

 

  • 100이하의 숫자를 입력하는 가장 적절한 데이터 형식과 필드 크기 : 숫자 / 바이트

 

  • 입력마스크 
    • 1자리 문자 + 3자리 숫자 반드시 입력, 연결 문자 저장 : L-000;0
    • 한글 선택적 입력 + 도우미 + * 표시 : ??"도우미";;*

 

  • 공백이 입력되지 않도록 유효성 검사
=InStr([사번]," ")=0

 

  • "Feb-Sat-2020" 과 같이 입력하기 위한 형식 지정 방법
    • mmm-aaa-yyyy로 하면, "월" (한글 요일)이 나온다.
mmm-ddd-yyyy

 

  • 복수의 필드가 나오는 유효성 검사에서는 에러가 발생하는 것 같다.
    • 이 경우, 리본에 있는 속성 시트를 누르고, 유효성 검사 규칙에 입력해야 한다.

 

 

- 입력 및 수정 기능 구현 -

 

  • "'포커스'를 이동시킬 수 없도록" : 탭 정지 - 아니오
  • 일은 Date가 아닌 Day함수를 쓴다. 
  • 메시지 박스 + 보고서 미리보기

  • Davg 함수
    • Davg(계산할 필드명, 도메인(테이블 or 쿼리 / 문제에서 제시됨), 조건)
=Davg("성적", "과목별성적","과목명 = txt과목명")

 

  • 목록상자 및 속성 변경
    • 1) 텍스트 상자 우클릭하여 변경을 클릭하고, 목록상자 선택
    • 2) 데이터에서 컨트롤 원본 설정하고 제시된 조건 설정
    • 3) 형식 탭에서 열 및 높이 조정

 

  • 하위폼 옵션 설정 시, 하위폼의 테두리와 폼 선택기를 클릭할 때의 옵션이 다르다.

 

 

- 조회 및 출력 기능 구현 - 

 

  • 조건에 따른 메시지 박스 출력 
    • if, elseif, else 문을 사용해 조건별 결과 표시
  • 그룹화 및 정렬 설정 시, 머리글과 바닥글 표시 여부 확인

 

  • 매 페이지마다 인쇄되도록  제목을 설정하려면?
    • 보고서 머리글에 있던 제목을 페이지 머리글로 옮긴다!

 

  • Dlookup 함수
오답 : =DLookUp("기관명","봉사기관","txt기관명 = txt기관코드")) 
정답 : =DLookUp("기관명","봉사기관","기관코드=txt기관코드"))

 

- 처리 기능 구현 (쿼리) -

 

  • 업데이트 쿼리 : 점수 추가라고 하면 '추가'가 아닌 '업데이트'를 선택해야 함.

 

  • 크로스탭 쿼리는 문제에 별도 지시없이 나올 수 있다.

 

  • 요약 기능을 부여해야 문제없이 표현 가능 (안하면 아래와 같은 에러 - "쿼리에 포함되지 않습니다" 발생)

 

 

728x90
반응형