책 내용 질문하기
조건부 서식 고급필터 수당 구하기
도서
[2011] 컴퓨터활용능력 1급 실기(엑셀, 액세스 2003 사용자용)
페이지
429
조회수
278
작성일
2011-08-10
작성자
첨부파일

실전모의고사 c

조건부 서식을

=(MONTH($H8)=9)*($E8="여")*($D8="영업부") 입력을 해야하는데요

왜 달 나오는 값인 9는 "9"로 입력하면 안되는건가요?

고급필터에서

조건을 P*으로 입력을 해서 풀어야하는데요

저는 =LEFT($B3,1)="P" 라고 해서 입력을 하고 풀었는데

답이 안나오네요

저렇게 풀면 안되는건가요?

그리고 계산작업 3번 수 당 구하기를요

답은 G3*(vlookup(F3,$A$17:$B$20,2)+if(or($F3>=10,$D3="과장"), 5%,0))

라고 되어있는데요.

=if(or($F3>=10,$D3="과장"),G3*(vlookup(F3,$A$17:$B$20,2,1)+5%),G3*(vlookup(F3,$A$17:$B$20,2,1)))

이렇게 구하면 안되는건가요?

그리고 답의 식이 이해가 안되요 ㅜㅜ

답변
2011-08-11 10:02:07

month 에서 나온 값은 월에 해당하는 숫자가 나옵니다.

숫자 9가 나오는데 문자 "9" 로 비교하면 둘이 같다고 할까요?

9 = "9" 가 되는데요? 이것은 절대 같다 가 나올 수 없죠.

그렇기 때문에 ""가 없이 사용하셔야 합니다.

"" 가 붙으면 문자가 되는 것입입니다.

left, right, mid 함수는 텍스트 함수 이므로 여기서 나온 값은 모두 텍스트가 됩니다.

그래서 left(b3,1) 에서 나온값이 1이라도 숫자 1이 아니라 문자 "1" 이 되므로

비교하실때 left(b3,1)="1" 과 같이 비교하는 것이죠.

함수에서 나온 값이 숫자인지 문자인지 생각하신 후에 비교할 값을 사용하세요.

조건을 left(b3,1)="P" 로 푸셔도 상관 없습니다.

하지만 식을 이용하여 조건을 작성하여 조건에 값이 true 나 false 가 나오면 원본데이터에 없는 필드명을 사용하셔야 합니다.

원본 데이터에 없는 필드명을 사용하여 구해 보세요. 사번이 아닌 사번코드 라던지 코드 라던지 다른 필드명을 사용해 보세요.

결과가 같기때문에 님이 만드신 식을 사용하실 수 있습니다.

계산작업 문제는 주어진 함수를 사용하여 올바른 값이 나오면 정답으로 인정 됩니다.

G3*(vlookup(F3,$A$17:$B$20,2)+if(or($F3>=10,$D3="과장"), 5%,0))

이식은 수당을 계산하는 것으로

수당은 기본급 x 수당비율 입니다.

수당비율은 근무년수가 10년 이상이거나 직위가 과장이면 5%를 더하라고 했으므로

기본급 x ( vlookup(근무년수,범위,2)+if(or(근무년수>=10,직위="과장"),5%,0)

가 되는 것이죠.

좋은 하루 되세요.

"
  • *
    2011-08-11 10:02:07

    month 에서 나온 값은 월에 해당하는 숫자가 나옵니다.

    숫자 9가 나오는데 문자 "9" 로 비교하면 둘이 같다고 할까요?

    9 = "9" 가 되는데요? 이것은 절대 같다 가 나올 수 없죠.

    그렇기 때문에 ""가 없이 사용하셔야 합니다.

    "" 가 붙으면 문자가 되는 것입입니다.

    left, right, mid 함수는 텍스트 함수 이므로 여기서 나온 값은 모두 텍스트가 됩니다.

    그래서 left(b3,1) 에서 나온값이 1이라도 숫자 1이 아니라 문자 "1" 이 되므로

    비교하실때 left(b3,1)="1" 과 같이 비교하는 것이죠.

    함수에서 나온 값이 숫자인지 문자인지 생각하신 후에 비교할 값을 사용하세요.

    조건을 left(b3,1)="P" 로 푸셔도 상관 없습니다.

    하지만 식을 이용하여 조건을 작성하여 조건에 값이 true 나 false 가 나오면 원본데이터에 없는 필드명을 사용하셔야 합니다.

    원본 데이터에 없는 필드명을 사용하여 구해 보세요. 사번이 아닌 사번코드 라던지 코드 라던지 다른 필드명을 사용해 보세요.

    결과가 같기때문에 님이 만드신 식을 사용하실 수 있습니다.

    계산작업 문제는 주어진 함수를 사용하여 올바른 값이 나오면 정답으로 인정 됩니다.

    G3*(vlookup(F3,$A$17:$B$20,2)+if(or($F3>=10,$D3="과장"), 5%,0))

    이식은 수당을 계산하는 것으로

    수당은 기본급 x 수당비율 입니다.

    수당비율은 근무년수가 10년 이상이거나 직위가 과장이면 5%를 더하라고 했으므로

    기본급 x ( vlookup(근무년수,범위,2)+if(or(근무년수>=10,직위="과장"),5%,0)

    가 되는 것이죠.

    좋은 하루 되세요.

    "
  • *
    2011-08-11 10:11:26

    우선 함수의 반환값을 잘 알아야 합니다. 일종의 텍스트 함수들은 반환값이 문자열이기 때문에 "" 기호를 붙여 비교해 주어야 하지만, 위와 같은 MONTH함수는 반환값이 숫자형태입니다. 따라서, 비교시 그냥 숫자를 써서 비교해 주어야 하지요. 쌍따옴표 ""를 붙이면 엑셀 프로그램은 문자열로 인식하기 때문입니다. 항상 어떤 값을 비교할때는 그 자료의 형을 동일하게 해주어야 합니다. 물론 자동으로 변환해 주는 경우도 있지만, 정확한 표현은 아닌것이죠.

    고급필터에서 조건이 P*라면, 조건식으로 질문자 님과 같이 LEFT함수를 써서 비교해 주어도 마찬가지 결과가 나올 것입니다. 같은 결과가 나오지 안는다면 그건 다른 부분에서 문제가 있는 부분일 것입니다. 다시 한 번 확인해 보세요.

    수당 구하기 문제는 질문자님이 작성하신 대로 하셔도 무방합니다. 그렇게 작성하셔도 정답 식과 같은 결과가 나올 것입니다. 문제를 풀 때 정답식과 꼭 같게 만들어야 한다는 것은 없습니다. 같은 결과를 도출하기 위해 그 과정은 다를 수 있는 것이죠. 다만, 문제의 조건은 모두 만족 하여야 합니다. 어떤 함수를 꼭 사용하여 문제를 푸시오 하는 조건들이 있습니다. 이런 조건들은 꼭 지켜줘야 하겠죠.

    그리고, 정답을 이해 못하시겠다고 했는데 정답식은 일단 조건에 따라 이율을 먼저 구한 겁니다. 함수는 안쪽부터 해석을 해주므로, vlookup으로 일단 기본 이율을 구한것은 아실거고, f3이 10보다 크거나 d3이 과장인 경우 이율을 5% 더하라 했으므로, 앞에서 우한 기본 이율 뒤에 if함수로 덧셈을 한 경우입니다. 이렇게 해서 구한 이율을 최종적으로 G3에 곱해주면 수당이 나오는 것이죠.

    중요한 것은 정답에 얽매일 필요는 없습니다. 나는 이렇게 작성하는 것이 편하다. 하면 그렇게 하는것이 좋습니다. 문제의 조건만 모두 지키고 있고, 결과가 같다면 그것도 정답이 되는 것이니까요. 그리고, 계속 수식을 작성하다 보면 중복되는 식을 하나로 줄여서 조금 더 간단한 수식으로 사용이 가능할 것입니다.

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