===
사용자 정의 함수 만들기
Alt+F11로 VB창 연다.
그리고 모듈을 만든다.
코드는
if 조건1 then
elseif 조건2 then
end if
형식을 이용해서 다음과 같이 만든다.
Public Function fn연소득(실적, 연봉)
If 실적 >= 0.4 Then
fn연소득 = 연봉 + 1000
ElseIf 0.4 > 실적 And 실적 >= 0.2 Then
fn연소득 = 연봉 + 500
ElseIf 0.2 > 실적 Then
fn연소득 = 연봉
End If
End Function
그리고 시트에서
fn연소득을 이용해서 나타낸다.
===
배열수식 만들기
배열수식의 중요한 것
1) 조건 * 값으로 표시
2) 수식입력 후 Ctrl+Shift+Enter 눌러서 나타낼 것
이 문제에서 주의해야할 것은
가장 높은 실적 따로,
가장 높은 연봉 따로 배열수식으로 구해줘야 한다는 것
먼저 가장 간단하게 MAX만으로 배열수식 표현
=MAX( → 제시된 배열에서 가장 큰 값 찾기
($B$3:$B$24 = $C28) → 조건
*
($C$3:$C$24) → 값
)
사실, 이렇게 써주면 문제에서 요구하는 답과 같다.
하지만 MAX이외 함수
INDEX, MATCH를 써줘야 한다.
MATCH가 이해하기 가장 어려웠는데,
MATCH는 아까 나온 값의 위치값(행 수)을 나타내주면 된다.
= MATCH(
MAX(
($B$3:$B$24 = $C28) * ($C$3:$C$24)
)
,
($B$3:$B$24 = $C28) * ($C$3:$C$24)
,
0
)
즉, MAX에 썼던 배열수식을
그대로
MATCH의 두번째 인자(찾아볼 범위)에 써줘야 정확하게 해당값의 위치를 찾을 수 있다.
마지막으로 생각해줘야할 것은
INDEX와 그 다음 열의 연봉표시이다.
=INDEX(
C$3:C$24,
MATCH(MAX( ($B$3:$B$24 = $C28) * (C$3:C$24) ), ($B$3:$B$24 = $C28) * (C$3:C$24), 0)
)
INDEX의 1번째 인자에
열을 1개만 구성하는 array를 넣었기 때문에
3번째 인자값(열 숫자)를 생략했다.
또, 다음 열에 표시해야 했기에
=INDEX(
C$3:C$24,
MATCH(MAX( ($B$3:$B$24 = $C28) * (C$3:C$24) ), ($B$3:$B$24 = $C28) * (C$3:C$24), 0)
)
위의 실적을 나타내는 범위의 열표시를 상대참조하게끔 바꿔놨다.
그래야 아래처럼 연봉도 빨리 표시할 수 있기 때문
'컴퓨터활용(컴활) 공부' 카테고리의 다른 글
[스프레드시트] 컴활 실기 문제 풀어보자 (피벗테이블보고서, 부분합, 데이터유효성검사) (0) | 2023.12.16 |
---|---|
[데이터베이스] 컴활 실기 풀어보자 (쿼리) (0) | 2023.12.16 |
[스프레드시트] 컴활실기 문제 풀어보기 (VLOOKUP, 배열수식) (0) | 2023.12.15 |
[스프레드시트] (고급검색, 시트 보호, 조건부 서식) 컴활 실기 문제 풀자 (0) | 2023.12.14 |
[데이터베이스] 컴활 실기 문제 풀자 (업데이트 쿼리, String함수, 조건) (0) | 2023.12.14 |