책 내용 질문하기
배열함수와 형식에 관한 null값과 0값 질문입니다.
도서
[2011] 컴퓨터활용능력 1급 실기(엑셀, 액세스 2003 사용자용)
페이지
112
조회수
56
작성일
2011-09-09
작성자

데요 " "은 null값인가요 그냥 값0인가요?
① count(if(조건1,조건2,1," "))에서는요 " " ->이값을 널값으로 보기때문에
널값으로 계산되어지는 것은 반환되어 지는 값이 없기때문에
<예를들어>
1

  1. 110페이지 전문가 조언을 보면 배열 sum(if(조건,1," ")) 에서 " "는 생략가능한
널값
count( 1 ) = 3 이고
널값
1
② count((조건1)*(조건2)*1) 은
<예를들어>
1
0
count( 1 ) = 5 이고
0
1
sum함수는 총합함수이니까 " "에서 널값을 받거나 0값을 받아도 상관없는데 ①번
과 ②번은 결과값이 다르므로 count함수는 무조건 if함수와 결합된 ①번형식을 써
야하는 건가요?
그러면 113페이지에서 언급한 average함수와 min,median,small은 0값에 영향을
받으므로 널값만 반환하는 if함수와 결합된 형태로 써야하고 sum,max,large함수는
0값에 영향을 받지않으므로 ②번형식으로도 가능한거죠?
그렇다면 널값과 널값을 배열로 계산하면 무조건 널값이 나오나요?
아래는 제가 엑셀에다가 수치를 입력안하고 행과 열을 범위를 지정하고 배열을
하니 null값이 나와야하는데 0값이 나옵니다.
위에서 해본 것은 파일에 첨가하였어요...
뭔가 좀 이상합니다. 제가 잘못이해할 수도 있고 궁금합니다.
답변
2011-09-14 09:33:07

" " 는 널값도 0값도 아니죠. 스페이스바가 하나 들어갔으니 띄어쓰기가 하나 들어간 것으로

이것은 count 문에서는 문자 자료가 입력된 것으로 봐야됩니다.

count 함수는 숫자를 세는 함수이므로 숫자가 입력된 값만 계산 하게 되죠.

1번 형식이 잘못 된 것 같은데요.

if 문은 if(조건, 참, 거짓) 인데 조건을 ,, 로 두개 쓸 수 없죠.

그러므로 조건이 2개이상이면

count(if((조건1)*(조건2),참, 거짓))

과 같이 쓰셔야 합니다.

조건이 더 많다면 조건부분에 * 로 더 이어 주셔야 하구요.

count 문에서 if문과 같이 사용하는 이유는 거짓일때 값을 받지 않으려고 하는 것입니다.

그냥 count((조건1)*(조건2)*1)

로 지정 하시면

조건1과 조건2가 참일때만 1이 나오고 나머지는 모두 0이 나오죠.

1 * 1 * 1 = 1

1 * 0 * 1 = 0

0 * 1 * 1 = 0

0 * 0 * 1 = 0

이 되어서 조건이 모두 참일때만 1이 나오고 나머지는 0이 나옵니다.

count(1,1,0,0,1,0,1) 과 같이 나오게 되면 count 함수는 숫자를 세는 함수이므로 1과 0을 모두 세게 됩니다.

그래서 7 이 나오게 되죠. 즉 조건이 참이든 거짓이든 모든 개수를 세어 버리는 것입니다.

count(if((조건1)*(조건2),1)

과 같이 조건이 참일때 1을 반영 하게 되면

count(1,1,,,1,,1)

과 같이 조건이 참일때 1을 반영하고 조건이 거짓일때는 아무것도 없는 값 즉 null이 반영 되므로

1이 나온 개수만 세면 되는 것입니다. 그래서 4가 됩니다.

이런 이유로 min, median, small 은 if문과 같이 사용하셔야 하죠.

0값이 들어가게 되면 min과 small은 0만 나오게 되고 median은 그만큼 숫자가 적게 나오게 됩니다.

이해가 되시죠?

좋은 하루 되세요.

"
  • *
    2011-09-14 09:33:07

    " " 는 널값도 0값도 아니죠. 스페이스바가 하나 들어갔으니 띄어쓰기가 하나 들어간 것으로

    이것은 count 문에서는 문자 자료가 입력된 것으로 봐야됩니다.

    count 함수는 숫자를 세는 함수이므로 숫자가 입력된 값만 계산 하게 되죠.

    1번 형식이 잘못 된 것 같은데요.

    if 문은 if(조건, 참, 거짓) 인데 조건을 ,, 로 두개 쓸 수 없죠.

    그러므로 조건이 2개이상이면

    count(if((조건1)*(조건2),참, 거짓))

    과 같이 쓰셔야 합니다.

    조건이 더 많다면 조건부분에 * 로 더 이어 주셔야 하구요.

    count 문에서 if문과 같이 사용하는 이유는 거짓일때 값을 받지 않으려고 하는 것입니다.

    그냥 count((조건1)*(조건2)*1)

    로 지정 하시면

    조건1과 조건2가 참일때만 1이 나오고 나머지는 모두 0이 나오죠.

    1 * 1 * 1 = 1

    1 * 0 * 1 = 0

    0 * 1 * 1 = 0

    0 * 0 * 1 = 0

    이 되어서 조건이 모두 참일때만 1이 나오고 나머지는 0이 나옵니다.

    count(1,1,0,0,1,0,1) 과 같이 나오게 되면 count 함수는 숫자를 세는 함수이므로 1과 0을 모두 세게 됩니다.

    그래서 7 이 나오게 되죠. 즉 조건이 참이든 거짓이든 모든 개수를 세어 버리는 것입니다.

    count(if((조건1)*(조건2),1)

    과 같이 조건이 참일때 1을 반영 하게 되면

    count(1,1,,,1,,1)

    과 같이 조건이 참일때 1을 반영하고 조건이 거짓일때는 아무것도 없는 값 즉 null이 반영 되므로

    1이 나온 개수만 세면 되는 것입니다. 그래서 4가 됩니다.

    이런 이유로 min, median, small 은 if문과 같이 사용하셔야 하죠.

    0값이 들어가게 되면 min과 small은 0만 나오게 되고 median은 그만큼 숫자가 적게 나오게 됩니다.

    이해가 되시죠?

    좋은 하루 되세요.

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