p357의 문제2 따라하기
성별 D26의 경우는 mod(mid(b26,8,1),2)=1) 이라고 되어있고
생년월일 E26의 경우 mid(b26,8,1)>"2" 라고 되어있는데.
d26의 mod후행 함수가 "1"이라고 감쌋을 경우에는 텍스트값으로 판단하고 0으로 나누는 건가요?
빈시트 c3셀에 1324를 입력하고 아래와 같이 처리하면
=IF(MOD(RIGHT(C3,1),5)=4,"오케이","노") 인경우는 오케이를 리턴
=IF(MOD(RIGHT(C3,1),5)="4","오케이","노")인경우는 노를 리턴하던데
해설을 어려워서 질문드립니다.
mid 함수는 텍스트 함수로 여기서 나온 값은 텍스트로 반환 됩니다.
그러므로 mid(b26,8,2) 를 계산하고 반환된 값은 문자인 "1","2",... 이 되는 것이죠.
그래서 비교할때 mid(b26,8,2)>="2" 로 비교하는 것입니다.
이렇게 mid 에서 나온 값이 텍스트 인데요.
mod 함수에서 계산되게 되면 숫자값이 됩니다. mod 함수는 나머지를 구하는 함수로 반환값이 숫자이기 때문이죠.
mod(mid(b26,8,2),2) 를 하게 되면 0이나 1 이 나오게 됩니다.
그러므로 숫자로 비교하시면 되는 것이죠.
=IF(MOD(RIGHT(C3,1),5)=4,"오케이","노") 인경우는 숫자값과 숫자값을 비교하기때문에 제대로된 결과가나오는데
=IF(MOD(RIGHT(C3,1),5)="4","오케이","노")인경우는 숫자값과 문자값을 비교함로 올바른 결과가 나오지 않는 것입니다.
좋은 하루 되세요.
"-
*2012-01-13 07:32:39
mid 함수는 텍스트 함수로 여기서 나온 값은 텍스트로 반환 됩니다.
그러므로 mid(b26,8,2) 를 계산하고 반환된 값은 문자인 "1","2",... 이 되는 것이죠.
그래서 비교할때 mid(b26,8,2)>="2" 로 비교하는 것입니다.
이렇게 mid 에서 나온 값이 텍스트 인데요.
mod 함수에서 계산되게 되면 숫자값이 됩니다. mod 함수는 나머지를 구하는 함수로 반환값이 숫자이기 때문이죠.
mod(mid(b26,8,2),2) 를 하게 되면 0이나 1 이 나오게 됩니다.
그러므로 숫자로 비교하시면 되는 것이죠.
=IF(MOD(RIGHT(C3,1),5)=4,"오케이","노") 인경우는 숫자값과 숫자값을 비교하기때문에 제대로된 결과가나오는데
=IF(MOD(RIGHT(C3,1),5)="4","오케이","노")인경우는 숫자값과 문자값을 비교함로 올바른 결과가 나오지 않는 것입니다.
좋은 하루 되세요.
"