책 내용 질문하기
함수문제입니다.
도서
[2013] 컴퓨터활용능력 1급 실기(엑셀, 액세스 2007 사용자용)
페이지
104
조회수
38
작성일
2013-07-17
작성자
첨부파일

104p2번 설명좀 해주세요 ㅠㅠ

108p1번 식이 이해가 가지 않습니다

110p에 1번 왜 =sum(if($b$12:$b$27=a3,1)&"명" 에서 왜 1을 쓴건지 모르겠어요 합계 구할값이 왜 1인가요?

129p 3번 // 130p 2번 4번 // 132p 2번 모르겠어요

제가 match 랑 index를 이해를 못한건지 그런 문제에서 계속 막히네요 ㅠㅠ 위에 문제좀 알려주세요 !!

답변
2013-07-19 10:16:21

1. 먼저 인덱스 함수는 =INDEX(범위, 행번호, 열번호)로 사용합니다.

문제에서 범위는 $A$9:$F$35이고

행번호는 MATCH(LARGE(($C$9:$C$35=E3)*$D9:$D$35,3),($C$9:$C$35=E3)*$D$9:$D$35,0)이고

열번호는 2입니다.

인덱스 함수가 범위에서 행번호와 열번호만큼 떨어진

곳에 데이터를 가져오는 함수입니다.

만약 A1부터 4 X 4로 작성된 범위에서 행번호가 2고 열번호가 2면

행은 아래로 내려가고 열은 오른쪽으로 이동합니다.

1행이 A1이므로 2행이면 B1이 되고

B1은 2행의 1열이므로 2열은 B2가 됩니다.

이제 문제에서 범위와 열은 알기 쉬울 것입니다.

행에 대한 것만 분석하시면 됩니다.

매치함수는 =MATCH(찾을값, 범위, 옵션)으로 사용합니다.

매치 함수는 범위에서 찾을 값의 상대적인 위치를 반환합니다.

매치함수의 찾을값은 LARGE 함수를 사용하여

LARGE(($C$9:$C$35=E3)*$D9:$D$35,3)입니다.

이것은 LARGE( (조건) * 값을구할 범위, N번째 값)입니다.

조건은 $C$9:$C$35 범위에서 E3가 있다면

해당 행에서 $D9:$D$35 범위의 값을 추출하여

3번째로 큰 값을 가져오고

이것이 MATCH함수에서 찾을값이 됩니다.

매치함수의 범위는 찾을 값에서 LARGE 함수 안에 있는

"(조건) * 값을 구할 범위"와 동일하므로

($C$9:$C$35=E3)*$D$9:$D$35이 됩니다.

매치 함수의 옵션은 -1, 0 ,1이 있습니다.

-1 : 찾을 값보다 크거나 같은 값 중 가장 작은 값을 찾습니다.
범위는 반드시 내림차순으로 정렬되어 있어야 합니다.
0 : 찾을 값과 첫 번째로 정확하게 일차하는 값을 찾습니다.
범위는 정렬되어 있지 않아도 됩니다.
1 : 찾을 값보다 작거나 같은 값 중 가장 큰 값을 찾습니다.
범위는 반드시 오름차순으로 정렬되어 있어야 합니다.

매치 함수의 옵션은 찾을 값을 정하는 범위가

어떻게 정렬되어 있는가가 중요합니다.

인덱스 함수 범위내에서 MATCH와 LARGE함수를 이용하여

찾은 값의 위치를 행번호로 하고 열번호를 2로하여

해당하는 데이터를 추출합니다.

위에서 사용된 기본적인 수식은 꼭 먼저 기억하세요

참고로 INDEX, MATCH와 LARGE과 함께 사용되는 수식은

=INDEX(범위, MATCH(LARGE( (조건) * 값을 구할 범위, N번째 큰 값 ), 열번호)가 자주 사용됩니다.

이것도 잘 기어해두시고 LARGE말고 SMALL에서도 사용됩니다.

2. 1년을 360일로 계산 한다고 했고 근무년수를 구하는 것이기 때문에 360으로 나누는 것이죠.

days360 함수는 1년을 360일 즉 한달을 30일로 치게 됩니다. 그리고 두 수 사이의 날짜를 구하죠

day360(e3,i1)

이라는 것은 2008-07-18 에서 87-05-15 빼서 7623 이 나오게 됩니다.

7623/360

을 하게 되면 21.175가 나오게 됩니다.

여기서 정수만 구하기 위해 int 함수를 쓰는 것입니다. 그렇게 되면 21이 나오게 되죠.

3.

sum 을 이용하여 개수를 구하는 방법입니다.

sum(if(조건,1) &"명"

으로 조건이 참이면 1을 반영합니다.

=sum(1,1,,1,,1,,1,1,..)

과 같은 값이 나오고 1을 모두 더하여 조건에 맞는 것의 개수를 구하게 되는 것이죠.

4.

{=INDEX($B$4:$H$43,MATCH(MAX(IF($D$4:$D$43=$K26,$G$4:$G$43)),($D$4:$D$43=$K26)*$G$4:$G$43,0),2)}

=index( 범위, match (max(if( 조건 ,반환할값)), (match의 조건)* 반환할 값, match의옵션), index의 열범위)

입니다.

전체적인것을 질문 하시면 답변 하기가 조금 곤란합니다. 이 함수 중에서 잘 모르겠다는 부분 이해가 안된다는 부분을 질문 주시면 자세하게 설명 드리겠습니다.

5. =index($n$3:$n$7,match(h3,$n$3:$n$7,0)+1,1)

이것도 마찮가지죠.

index(범위,행,열)

입니다. 범위에서 행과 열에 위치하는 값을 찾는 것입니다.

많이 질문 하시는 부분이 match 부분에 +1 을 하는 이유이니 이 부분에 대해 설명 드리겠습니다.

현재 햇살반이면 병아리반~

과 같이 한단계씩 올라가게 되므로

match에서 나온 범위에 +1 을 하여 행위치를 더하는 것입니다.

햇살반이면 match 에서 나온 값이 1이 되는데

여기에 +1을 하여 2 로 만들어 병아리반이 될 수 있게 하는 것입니다.

6.

vlookup에서 할인율을 구하는데 할인율은 회원을 구분하여 구하기 때문에 c3을 이용하는 것입니다.

c3셀이 회원구분의 데이터가 입력된 첫 셀 이니까요.

MATCH() 이후에 +1 를 하는 이유는, MATCH() 함수를 이용하면 소형 부터 승합까지 각각 1,2,3,4의 값이 나옵니다.

VLOOKUP 함수는 D23:I26까지의 범위를 하는데 이때 1열의 값을 가져오면 비회원입니다.

따라서 MATCH() 로 구한 값과 일치하는 열의 값을 가져오기위해 MATCH() 의 결과값에 +1을 더하는 것입니다.

(+1을 해주지 않으면 소형의 경우 비회원이라는 값을 계산하게 됩니다.)

c3이 비회원입니다. 이 비회원이라는 값을 가지고 할인율 표에서 할인율을 확인 해야 하죠.

범위의 맨 왼쪽 열을 가지고 구해야 하므로 vlookup이 되는 것입니다.

그래서 vlookup의 범위가 d23:i26이 되는 것입니다.

그런데 match에서 구하는 것은 e22:i22 범위이므로 d열이 빠진 범위가 되는 것입니다.

이렇게 하게되면 범위 차이가 나기 때문에 정확한 값이 나오지 않습니다.

그래서 d열이 빠진 만큼 +1을 해주는 것입니다.

좋은 하루 되세요.

"
  • *
    2013-07-19 10:16:21

    1. 먼저 인덱스 함수는 =INDEX(범위, 행번호, 열번호)로 사용합니다.

    문제에서 범위는 $A$9:$F$35이고

    행번호는 MATCH(LARGE(($C$9:$C$35=E3)*$D9:$D$35,3),($C$9:$C$35=E3)*$D$9:$D$35,0)이고

    열번호는 2입니다.

    인덱스 함수가 범위에서 행번호와 열번호만큼 떨어진

    곳에 데이터를 가져오는 함수입니다.

    만약 A1부터 4 X 4로 작성된 범위에서 행번호가 2고 열번호가 2면

    행은 아래로 내려가고 열은 오른쪽으로 이동합니다.

    1행이 A1이므로 2행이면 B1이 되고

    B1은 2행의 1열이므로 2열은 B2가 됩니다.

    이제 문제에서 범위와 열은 알기 쉬울 것입니다.

    행에 대한 것만 분석하시면 됩니다.

    매치함수는 =MATCH(찾을값, 범위, 옵션)으로 사용합니다.

    매치 함수는 범위에서 찾을 값의 상대적인 위치를 반환합니다.

    매치함수의 찾을값은 LARGE 함수를 사용하여

    LARGE(($C$9:$C$35=E3)*$D9:$D$35,3)입니다.

    이것은 LARGE( (조건) * 값을구할 범위, N번째 값)입니다.

    조건은 $C$9:$C$35 범위에서 E3가 있다면

    해당 행에서 $D9:$D$35 범위의 값을 추출하여

    3번째로 큰 값을 가져오고

    이것이 MATCH함수에서 찾을값이 됩니다.

    매치함수의 범위는 찾을 값에서 LARGE 함수 안에 있는

    "(조건) * 값을 구할 범위"와 동일하므로

    ($C$9:$C$35=E3)*$D$9:$D$35이 됩니다.

    매치 함수의 옵션은 -1, 0 ,1이 있습니다.

    -1 : 찾을 값보다 크거나 같은 값 중 가장 작은 값을 찾습니다.
    범위는 반드시 내림차순으로 정렬되어 있어야 합니다.
    0 : 찾을 값과 첫 번째로 정확하게 일차하는 값을 찾습니다.
    범위는 정렬되어 있지 않아도 됩니다.
    1 : 찾을 값보다 작거나 같은 값 중 가장 큰 값을 찾습니다.
    범위는 반드시 오름차순으로 정렬되어 있어야 합니다.

    매치 함수의 옵션은 찾을 값을 정하는 범위가

    어떻게 정렬되어 있는가가 중요합니다.

    인덱스 함수 범위내에서 MATCH와 LARGE함수를 이용하여

    찾은 값의 위치를 행번호로 하고 열번호를 2로하여

    해당하는 데이터를 추출합니다.

    위에서 사용된 기본적인 수식은 꼭 먼저 기억하세요

    참고로 INDEX, MATCH와 LARGE과 함께 사용되는 수식은

    =INDEX(범위, MATCH(LARGE( (조건) * 값을 구할 범위, N번째 큰 값 ), 열번호)가 자주 사용됩니다.

    이것도 잘 기어해두시고 LARGE말고 SMALL에서도 사용됩니다.

    2. 1년을 360일로 계산 한다고 했고 근무년수를 구하는 것이기 때문에 360으로 나누는 것이죠.

    days360 함수는 1년을 360일 즉 한달을 30일로 치게 됩니다. 그리고 두 수 사이의 날짜를 구하죠

    day360(e3,i1)

    이라는 것은 2008-07-18 에서 87-05-15 빼서 7623 이 나오게 됩니다.

    7623/360

    을 하게 되면 21.175가 나오게 됩니다.

    여기서 정수만 구하기 위해 int 함수를 쓰는 것입니다. 그렇게 되면 21이 나오게 되죠.

    3.

    sum 을 이용하여 개수를 구하는 방법입니다.

    sum(if(조건,1) &"명"

    으로 조건이 참이면 1을 반영합니다.

    =sum(1,1,,1,,1,,1,1,..)

    과 같은 값이 나오고 1을 모두 더하여 조건에 맞는 것의 개수를 구하게 되는 것이죠.

    4.

    {=INDEX($B$4:$H$43,MATCH(MAX(IF($D$4:$D$43=$K26,$G$4:$G$43)),($D$4:$D$43=$K26)*$G$4:$G$43,0),2)}

    =index( 범위, match (max(if( 조건 ,반환할값)), (match의 조건)* 반환할 값, match의옵션), index의 열범위)

    입니다.

    전체적인것을 질문 하시면 답변 하기가 조금 곤란합니다. 이 함수 중에서 잘 모르겠다는 부분 이해가 안된다는 부분을 질문 주시면 자세하게 설명 드리겠습니다.

    5. =index($n$3:$n$7,match(h3,$n$3:$n$7,0)+1,1)

    이것도 마찮가지죠.

    index(범위,행,열)

    입니다. 범위에서 행과 열에 위치하는 값을 찾는 것입니다.

    많이 질문 하시는 부분이 match 부분에 +1 을 하는 이유이니 이 부분에 대해 설명 드리겠습니다.

    현재 햇살반이면 병아리반~

    과 같이 한단계씩 올라가게 되므로

    match에서 나온 범위에 +1 을 하여 행위치를 더하는 것입니다.

    햇살반이면 match 에서 나온 값이 1이 되는데

    여기에 +1을 하여 2 로 만들어 병아리반이 될 수 있게 하는 것입니다.

    6.

    vlookup에서 할인율을 구하는데 할인율은 회원을 구분하여 구하기 때문에 c3을 이용하는 것입니다.

    c3셀이 회원구분의 데이터가 입력된 첫 셀 이니까요.

    MATCH() 이후에 +1 를 하는 이유는, MATCH() 함수를 이용하면 소형 부터 승합까지 각각 1,2,3,4의 값이 나옵니다.

    VLOOKUP 함수는 D23:I26까지의 범위를 하는데 이때 1열의 값을 가져오면 비회원입니다.

    따라서 MATCH() 로 구한 값과 일치하는 열의 값을 가져오기위해 MATCH() 의 결과값에 +1을 더하는 것입니다.

    (+1을 해주지 않으면 소형의 경우 비회원이라는 값을 계산하게 됩니다.)

    c3이 비회원입니다. 이 비회원이라는 값을 가지고 할인율 표에서 할인율을 확인 해야 하죠.

    범위의 맨 왼쪽 열을 가지고 구해야 하므로 vlookup이 되는 것입니다.

    그래서 vlookup의 범위가 d23:i26이 되는 것입니다.

    그런데 match에서 구하는 것은 e22:i22 범위이므로 d열이 빠진 범위가 되는 것입니다.

    이렇게 하게되면 범위 차이가 나기 때문에 정확한 값이 나오지 않습니다.

    그래서 d열이 빠진 만큼 +1을 해주는 것입니다.

    좋은 하루 되세요.

    "
· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.