시험이 얼마 남지 않아 질문을 많이 하게 되네요.. 미리 양해 부탁드립니다.
<컴활함수사전책>에 실려있는 계산작업 문제에서 질문있습니다.
1. 2016년 1회 1급(p.151) 3번에서 'If문과 for문'을 사용하라고 하는데, 정답문이 이해가 가질 않습니다. 특히,
for a= 1to 반영점수/10
fn기타=fn기타& "■"
next a
구분을 어떻게 해석해야 하나요?
2. 2015년 3회 1급(p.153) 3번에서 함수식을 세울 때, "=IFERROR(REPT("■",(I3/K3)*10& TEXT ~) 부분에서 "I3/K3"은 정확히 정수로 나오지 않기 때문에 INSTR같은 함수를 추가해야 하지 않나요? 정답처럼 답을 세워도 값이 제대로 나오는 이유가 궁금합니다.
3. 이어서 2015년 3회 5번 문제에서 INDEX 안의 범위값 지정할 때 질문있습니다. 보통 INDEX함수를 쓰면 범위를 시트의 전체를 잡아 입력하는 것 같은데, 이문제에서는 'E셀'에 있는 범위만 절대참조로 지정해놨습니다. 어떤 차이가 있나요? P.155 5번문제와 비교해서 답변해주시면 감사하겠습니다.
감사합니다.
1. 안녕하세요.
For 문은 아래 형식이 기본 형식입니다.
For 초기값 to 최종값 step 증가분
//반복되어 실행될 코드
Next
예를 들어
For a=1 to 10
a=a+1
Next a 라면
a는 1부터 10까지 반복되면서 누적합계를 구하는 코드가 됩니다.
For문은 a의 값이 10보다 작지 않은지 확인 하고 1~10 사이의 수라면
a=a+1을 실행합니다.
next a 를 만나면 다시 for 문의 시작으로 제어가 이동합니다.
다시 a가 1~10 사이의 수인지 확인하고,
1~10 사이의 수라면 a=a+1을 수행하고, 그렇지 않으면 Next a 다음으로 제어를 이동시키며 For문을 빠져나옵니다.
For a 1 = To 반영점수 / 10
fn기타 = fn기타 & "■"
Next a
를 살펴보면,
a=1부터 반영점수/10 까지
fn기타에 기존 fn기타 & "■"를 연결해서 누적시키는 과정을 반복하라는 것입니다.
fn기타 = fn기타 & "■"는
기존의 fn기타 에다가 & "■" 를 연결해서 fn기타에 다시 넣는 것입니다.
fn기타 = fn기타 & "■"
a가 1일때 실행하면 아무것도 입력되어 있지 않은 fn기타의 값과 "■"를 연결하여 fn기타에 넣으므로, fn기타에는 "■"가 들어가 있습니다.
a가 2일때 실행하면 fn기타에 입력되어 있던 "■"에 "■"를 연결하여 fn기타에 저장하므로 "■■"가 됩니다.
a가 3일때 실행하면 fn기타에 입력되어 있던 "■■"에 "■"를 연결하여 fn기타에 저장하므로 "■■■"가 됩니다.
2.
문제지 지시사항을 보시면,
(I3/K3)의 값이 0.75일 경우 "■"는 7개
(I3/K3)의 값이 0.40일 경우 "■"는 4개 라는 것을 알 수 있습니다.
그래서 *10해 준 것입니다.
rept 함수가 정수 부분만 이용하기 때문에 instr 을 사용하지 않아도 됩니다.
3. =INDEX($E$3:$E$30,MATCH(LARGE(($G$3:$G$30=H$33)*$J$3:$J$30,$G34),($G$3:$G$30=H$33)*$J$3:$J$30,0),1)
e, g, j 열은 고정되어야 하기 때문입니다.
국어, 영어, 수학에 해당하는 값을 모두 구해야 하기 때문에 채우기 핸들을 오른쪽, 아래쪽으로 지정하게 됩니다.
이렇게 지정할 때 성명, 과목, 수강인원의 범위가 변경 되지 않게 하기 위해 사용한 것입니다.
2015년 상시 1급의 5번 문제는 하나의 셀에 값을 구하기 때문에 채우기 핸들을 사용하지 않습니다.
하나의 셀에 값을 구하기 때문에 채우기 핸들을 사용하여 끌어다 놓을때 변경 되는 값이 없겠죠.
그렇기 때문에 절대참조를 지정하지 않는 것입니다.
좋은 하루 보내세요.
-
관리자2020-03-31 17:56:40
1. 안녕하세요.
For 문은 아래 형식이 기본 형식입니다.
For 초기값 to 최종값 step 증가분
//반복되어 실행될 코드
Next
예를 들어
For a=1 to 10
a=a+1
Next a 라면
a는 1부터 10까지 반복되면서 누적합계를 구하는 코드가 됩니다.
For문은 a의 값이 10보다 작지 않은지 확인 하고 1~10 사이의 수라면
a=a+1을 실행합니다.
next a 를 만나면 다시 for 문의 시작으로 제어가 이동합니다.
다시 a가 1~10 사이의 수인지 확인하고,
1~10 사이의 수라면 a=a+1을 수행하고, 그렇지 않으면 Next a 다음으로 제어를 이동시키며 For문을 빠져나옵니다.
For a 1 = To 반영점수 / 10
fn기타 = fn기타 & "■"
Next a
를 살펴보면,
a=1부터 반영점수/10 까지
fn기타에 기존 fn기타 & "■"를 연결해서 누적시키는 과정을 반복하라는 것입니다.
fn기타 = fn기타 & "■"는
기존의 fn기타 에다가 & "■" 를 연결해서 fn기타에 다시 넣는 것입니다.
fn기타 = fn기타 & "■"
a가 1일때 실행하면 아무것도 입력되어 있지 않은 fn기타의 값과 "■"를 연결하여 fn기타에 넣으므로, fn기타에는 "■"가 들어가 있습니다.
a가 2일때 실행하면 fn기타에 입력되어 있던 "■"에 "■"를 연결하여 fn기타에 저장하므로 "■■"가 됩니다.
a가 3일때 실행하면 fn기타에 입력되어 있던 "■■"에 "■"를 연결하여 fn기타에 저장하므로 "■■■"가 됩니다.
2.
문제지 지시사항을 보시면,
(I3/K3)의 값이 0.75일 경우 "■"는 7개
(I3/K3)의 값이 0.40일 경우 "■"는 4개 라는 것을 알 수 있습니다.
그래서 *10해 준 것입니다.
rept 함수가 정수 부분만 이용하기 때문에 instr 을 사용하지 않아도 됩니다.
3. =INDEX($E$3:$E$30,MATCH(LARGE(($G$3:$G$30=H$33)*$J$3:$J$30,$G34),($G$3:$G$30=H$33)*$J$3:$J$30,0),1)
e, g, j 열은 고정되어야 하기 때문입니다.
국어, 영어, 수학에 해당하는 값을 모두 구해야 하기 때문에 채우기 핸들을 오른쪽, 아래쪽으로 지정하게 됩니다.
이렇게 지정할 때 성명, 과목, 수강인원의 범위가 변경 되지 않게 하기 위해 사용한 것입니다.
2015년 상시 1급의 5번 문제는 하나의 셀에 값을 구하기 때문에 채우기 핸들을 사용하지 않습니다.
하나의 셀에 값을 구하기 때문에 채우기 핸들을 사용하여 끌어다 놓을때 변경 되는 값이 없겠죠.
그렇기 때문에 절대참조를 지정하지 않는 것입니다.
좋은 하루 보내세요.
-
관리자2020-04-03 11:12:18
안녕하세요.
님과 같이 범위를 B3:M30로 지정하고 열 번호를 4로 지정해도 됩니다.
즐거운 하루 되세요.
-
*2020-04-01 14:23:35
추가질문 있습니다!
15년 3회에서 5번계산문제에서 '강사, 과목, 수강인원'이 고정되는 값이기에 index범위부분에 E셀에만 해당하는 부분을 절대참조했다고 답변주셨는데, 그렇다면 index($B$3:$M$30, match~~ , 4) 이렇게 열 입력란에 강사 이름이 나와있는 4열을 입력하면 식이 성립되지 않는 건가요?