부록 계산문제
실전모의고사 F형
1. 4번 =ABS(MEDIAN(($F$17:$F$25)-IF($B$17:$B$25=$A29,$F$17:$F$25)))로
정답과 다르게 식을 작성하니까 답도 20000으로 정답과 다르게 나오는데요. 정답에는 ‘–‘ 양쪽으로 둘다
MEDIAN이 들어가는데도 답이 다른 이유가 있을까요?
엑셀
1. 125페이지 책 오른쪽에 나온 것과 달리 MIN은 IF없이도 배열함수로 쓰지 않나요?
2. 301페이지 If문을 학과명을 시트에 입력하는
코드 다음에 쓰고 else 다음 줄에 다시 토익점수를 시트에 입력하도록 코드를 써도 되나요?
3. 프로시저
입력행= [b3].currentregion.rows.count이 필드명이 있는 행을 포함하고,
[b3].currentregion.rows.count -1 이 마지막 입력행이잖아요.
그런데 [b3].row + [b3].currentregion.rows.count가 표의 새 행에 데이터를 입력하는 위치이고,
[b3].row가 필드명이 있는 행이라는 게 잘 이해가지 않습니다.
안녕하세요.
이문제에서 지정한 것이 전체 중간값과 각 운동의 중간값의 차를 계산 하라고 했으므로
{=ABS(MEDIAN($F$17:$F$25)-MEDIAN(IF($B$17:$B$25=A29,$F$17:$F$25)))}
로 작성한 것입니다. 앞쪽 median 이 전체 중간값을 계산하는 것이고 뒷쪽 median(if(~ 부분이 각 운동의 중간값을 구하기 위한 것입니다.
MEDIAN 함수는 조건을 넣을 때, 꼭 IF 함수를 이용해 주셔야 합니다.
조건이 거짓일 경우 if를 사용하면 false를 반환하고, if를 사용하지 않으면 0을 반환하게 됩니다.
중간값을 구하는 MEDIAN 함수는 인수에 0 이 포함되면 결과가 달라지기 때문에
if를 사용하여 거짓인 경우 false가 반환되도록 해야 합니다.
MAX 함수는 조건을 넣을 때, if를 사용해도 되고 사용하지 않아도 상관없습니다. 인수 0에 영향을 받지 않기 때문입니다.
0 이 반환되어 값에 영향을 주는 average, min, median, small 함수 등은 반드시 if 문과 함께 사용해야 합니다.
2. 1편 엑셀 125페이지 설명입니다.
평균값이 186,503이 나왔어요.
if문을 입력할때 if(B11:B29=B3,G11:G29)처럼 작성하는 것은 조건이 거짓일 경우 "반환할 값"이 생략 (if(B11:B29=B3,G11:G29,"반환할 값"))된 것으로, if(B11:B29=B3,G11:G29,"")과 같이 조건의 값이 거짓일 때 이론적으로 아무값도 없는 NULL값을 반환 하라는 뜻입니다. NULL값이 반환되면 아무것도 없는 것이기 떄문에 AVERAGE 함수의 배열요소에서 제외 됩니다. 그런데 만약 배열 수식을 AVERAGE(IF(B11:B29=B3,G11:G29,0)이나 AVERAGE((B11:B29=B3)*(G11:G29)와 같이 작성하면 조건이 거짓일때 0이 AVERAGE함수로 포함되어 평균이 계산 되는 것입니다. 즉 '=AVERAGE(550000.1650000,4000000,165000,770000)' 와 '=AVERAGE(550000.1650000,4000000,165000,770000,0...)'의 차이겠죠. 같은 이유로 MIN, MEDIAN,SMALL 등의 함수도 반드시 IF문과 함께 사용해야 합니다.
라고 설명되어 있습니다. min도 위와같은 이유로 if 문을 사용하셔야합니다.
3. 100이하의 수치 데이터로 입력해야 하는 부분인데 else 밖에 입력하시게 되면 해당 부분이 작동 되지 않습니다.
지시사항에 맞게 지정하고 정확한 결과가 나온다면 다르게 작성하셔도 상관 없지만 지시사항에 맞게 지정되지 않는다면 오답처리 됩니다.
4. 입력행=[a3].row+[a3].currentregion.count
은 입력 버튼, 즉 컨트롤에 입력된 값을 마지막 셀뒤에 입력 할때 사용 하는 것이구요.
입력행=[a3].row+[a3].currentregion.count -1
은 조회 버튼, 즉 셀에 입력된 값의 마지막 데이터를 조회할때 사용 하는 것입니다.
[a3].row 는 a3의 행위치를 나타내므로 3이 나오구요.
[a3].currentregion.rows.count 는 a3부터 입력되어 있는 값들의 개수를 세게 됩니다.
a3부터 3줄의 데이터가 있다면 이 값은 3이 되고
3+3 이 되어 6 행이 되는 것이죠. (필드명 포함해서 입니다. 필드명부터 4줄이라면 4를 더해주셔야 합니다.)
즉 6번행부터 입력하게 합니다.
이것은 마지막 데이터 다음줄에 값을 입력 하는 입력 프로시저에 사용하는 것이고
여기에 -1 을 하신다면 마지막 줄을 조회하여 폼에 나타나게 하는 조회 프로시저를 작성 하는 것입니다.
이름=cells(입력행,1)
과 같이 나타내는 것은 이름에 셀에 입력된 값을 입력 하라는 것으로 셀에 입력된 값을 폼에 입력하게 하는
조회 하실때 사용하는 것이구요.
cells(입력행,1)=이름
은 셀에 폼의 컨트롤에 입력된 이름 값을 셀에 입력 하라는 것으로
입력 프로시저를 작성할 때 사용하는 것입니다.
프로시저에서 =은 같다가 아니라
오른쪽에 있는 데이터를 왼쪽으로 넣는다 라는 개념으로 생각 하셔야 합니다.
즉
입력행 = [a3].row + [a3].currentregion.rows.count -1
이름=cells(입력행,1)
과 같이 작성하시면 조회를 하는 프로시저이고
입력행 = [a3].row + [a3].currentregion.rows.count
cells(입력행,1)=이름
으로 작성하시면 셀에 입력하는 입력 프로시저가 되는 것입니다.
데이터를 추가하거나 삭제하여도 항상 마지막 데이터 다음에 입력되어야 함
은 입력행 = [a3].row + [a3].currentregion.rows.count 을 입력하면 됩니다.
좋은 하루 되세요.
-
관리자2020-02-16 21:42:12
안녕하세요.
이문제에서 지정한 것이 전체 중간값과 각 운동의 중간값의 차를 계산 하라고 했으므로
{=ABS(MEDIAN($F$17:$F$25)-MEDIAN(IF($B$17:$B$25=A29,$F$17:$F$25)))}
로 작성한 것입니다. 앞쪽 median 이 전체 중간값을 계산하는 것이고 뒷쪽 median(if(~ 부분이 각 운동의 중간값을 구하기 위한 것입니다.
MEDIAN 함수는 조건을 넣을 때, 꼭 IF 함수를 이용해 주셔야 합니다.
조건이 거짓일 경우 if를 사용하면 false를 반환하고, if를 사용하지 않으면 0을 반환하게 됩니다.
중간값을 구하는 MEDIAN 함수는 인수에 0 이 포함되면 결과가 달라지기 때문에
if를 사용하여 거짓인 경우 false가 반환되도록 해야 합니다.
MAX 함수는 조건을 넣을 때, if를 사용해도 되고 사용하지 않아도 상관없습니다. 인수 0에 영향을 받지 않기 때문입니다.
0 이 반환되어 값에 영향을 주는 average, min, median, small 함수 등은 반드시 if 문과 함께 사용해야 합니다.
2. 1편 엑셀 125페이지 설명입니다.
평균값이 186,503이 나왔어요.
if문을 입력할때 if(B11:B29=B3,G11:G29)처럼 작성하는 것은 조건이 거짓일 경우 "반환할 값"이 생략 (if(B11:B29=B3,G11:G29,"반환할 값"))된 것으로, if(B11:B29=B3,G11:G29,"")과 같이 조건의 값이 거짓일 때 이론적으로 아무값도 없는 NULL값을 반환 하라는 뜻입니다. NULL값이 반환되면 아무것도 없는 것이기 떄문에 AVERAGE 함수의 배열요소에서 제외 됩니다. 그런데 만약 배열 수식을 AVERAGE(IF(B11:B29=B3,G11:G29,0)이나 AVERAGE((B11:B29=B3)*(G11:G29)와 같이 작성하면 조건이 거짓일때 0이 AVERAGE함수로 포함되어 평균이 계산 되는 것입니다. 즉 '=AVERAGE(550000.1650000,4000000,165000,770000)' 와 '=AVERAGE(550000.1650000,4000000,165000,770000,0...)'의 차이겠죠. 같은 이유로 MIN, MEDIAN,SMALL 등의 함수도 반드시 IF문과 함께 사용해야 합니다.라고 설명되어 있습니다. min도 위와같은 이유로 if 문을 사용하셔야합니다.
3. 100이하의 수치 데이터로 입력해야 하는 부분인데 else 밖에 입력하시게 되면 해당 부분이 작동 되지 않습니다.
지시사항에 맞게 지정하고 정확한 결과가 나온다면 다르게 작성하셔도 상관 없지만 지시사항에 맞게 지정되지 않는다면 오답처리 됩니다.
4. 입력행=[a3].row+[a3].currentregion.count
은 입력 버튼, 즉 컨트롤에 입력된 값을 마지막 셀뒤에 입력 할때 사용 하는 것이구요.
입력행=[a3].row+[a3].currentregion.count -1
은 조회 버튼, 즉 셀에 입력된 값의 마지막 데이터를 조회할때 사용 하는 것입니다.
[a3].row 는 a3의 행위치를 나타내므로 3이 나오구요.[a3].currentregion.rows.count 는 a3부터 입력되어 있는 값들의 개수를 세게 됩니다.
a3부터 3줄의 데이터가 있다면 이 값은 3이 되고
3+3 이 되어 6 행이 되는 것이죠. (필드명 포함해서 입니다. 필드명부터 4줄이라면 4를 더해주셔야 합니다.)
즉 6번행부터 입력하게 합니다.
이것은 마지막 데이터 다음줄에 값을 입력 하는 입력 프로시저에 사용하는 것이고
여기에 -1 을 하신다면 마지막 줄을 조회하여 폼에 나타나게 하는 조회 프로시저를 작성 하는 것입니다.
이름=cells(입력행,1)
과 같이 나타내는 것은 이름에 셀에 입력된 값을 입력 하라는 것으로 셀에 입력된 값을 폼에 입력하게 하는
조회 하실때 사용하는 것이구요.
cells(입력행,1)=이름
은 셀에 폼의 컨트롤에 입력된 이름 값을 셀에 입력 하라는 것으로
입력 프로시저를 작성할 때 사용하는 것입니다.
프로시저에서 =은 같다가 아니라
오른쪽에 있는 데이터를 왼쪽으로 넣는다 라는 개념으로 생각 하셔야 합니다.
즉
입력행 = [a3].row + [a3].currentregion.rows.count -1
이름=cells(입력행,1)
과 같이 작성하시면 조회를 하는 프로시저이고
입력행 = [a3].row + [a3].currentregion.rows.count
cells(입력행,1)=이름
으로 작성하시면 셀에 입력하는 입력 프로시저가 되는 것입니다.
데이터를 추가하거나 삭제하여도 항상 마지막 데이터 다음에 입력되어야 함
은 입력행 = [a3].row + [a3].currentregion.rows.count 을 입력하면 됩니다.
좋은 하루 되세요.
-
관리자2020-02-18 21:18:43
1. 이문제에서 MEDIAN(IF($B$17:$B$25=A29,$F$17:$F$25) 와 같이 사용해야 정확한 결과가 나오므로 위와 같이 사용하였구요.
그냥 if 를 사용하여 정확한 결과가 나온다면 상관 없지만 정확한 결과가 나오지 않고 식에 맞지 않게 지정되는 것이므로 위와 같이 사용한 것입니다.
2. 필드명이 입력된 행부터 개수를 세어 표시하게 되므로
필드명을 제외한 개수를 세기 위해 -1 을 지정한 것입니다.
b3부터 필드명이 입력되어 있고
b3 부터 3개의 자료가 있다면 b3을 포함 4개가 됩니다.
입력된 자료의 개수를 3이므로 -1을 해야 3개를 표시할 수 있으므로 -3 을 지정한 것입니다.
좋은 하루 되세요.
-
*2020-02-17 19:13:57
1. =ABS(MEDIAN($F$17:$F$25)-MEDIAN(IF($B$17:$B$25=$A29,$F$17:$F$25)))
을 ABS함수 안에 한꺼번에 식을 넣어버린 것처럼 MEDIAN(()-IF()) 이렇게 묶지는 않는지요?
2. 책에서 입력된 행 수를 메세지 박스 안에 표시하며 종료하는
MsgBox "전체 입력 건수는 " & [a3].CurrentRegion.Rows.Count - 1 & "건입니다"
Unload Me
를 작성할 때
[b3].currentregion.rows.count이 필드명이 있는 행을 포함한다는 건 무슨 뜻인가요?