
p.251 전문가 조언
p.318 고급필터 답부분.
질문 1. 고급필터를 사용할 때 조건 필드명은 원본 데이터의 필드명과 같아서는 안된다고 했는데 318페이지와 같은 경우는 왜 똑같이 쓴거에요?


p.367 & 375 => 기본모의고사 7회부분
질문2. 답지에는 참조행 변수를 3으로 지정한다는데 무슨 뜻인지 모르겠어요.
그리고 다른 참조행이 있는 부분에는 다 참조표같은게 있었는데 여기에는 참조표도 없구요.
질문3. 참조행대신 입력행으로 적으면 안되는건가요?


p.355 & 289
질문4. 데이터를 추가하거나 삭제하여도 항상 마지막 데이터로 추가되어야 함.
데이터를 추가하거나 삭제하여도 항상 마지막 데이터가 표시되어야 함.
저 두 문장에 따라서 입력행에 -1이 붙고 안붙고 하는건가요?
ex)) 입력행 = [a3].row + [a3].currentregion.rows.count (-1) <<
1.
기본적으로 필드에 입력된 값을 그대로 사용하는 경우에는 필드명을 동일하게 작성합니다.
필드에 입력된 값이
수학점수
10
20
40
50
60
...
이라면 조건으로
수학점수
>=40
과 같이 동일한 필드명으로 작성하시면 됩니다.
식을 이용하여 true나 false 값이 나올때 필드명을 원본데이터에 없는 필드명을 써서
가상의 필드를 만들고 이 가상의 필드에서 true 값만 필터해 내는 것입니다.
만약 수량이 평균이상인 값을 구하는데 수량이라는 필드가 있고
수량
=a1>=average($a$1:$a$10)
으로 쓰게 되면 식에서 나온 값이 true 나 false가 되는데
필드명을 수량으로 쓰시면 수량으로 등록된 10,20 30 40 등과 true 와 false 를 비교하게 됩니다.
10=false 는 전혀 같은 값이 될 수 없겠죠.
그러므로 필터를 하지 않게 되는 것입니다.
이런 이유로 가상의 필드를 만들어 그 가상의 필드에서 true 값만 필터하게 되는 것입니다.
이 가상의 필드는 사용자가 직접 만들어 주시면 됩니다.
아래그림과 같이 매출평균 이라던지
매출의평균 등 임의로 작성하셔서 상관 없습니다.
원본 데이터에 있는 필드명(월별, 품명,전월이월,매입수량,매출수량,매출금액,차월이월, 매출이익)만 아니면 됩니다.

2.
FOR EACH~NEXT 문에 필요한 것입니다.
스위치=0
참조행=3
스위치변수를 0, 참조행 변수를 3으로 초기화 하는 부분이구요.
for each aa in range("d4:d7")
에서 각 개체를 aa 에 차례로 저장하면서 셀의 수만큼 반복 실행하게 됩니다.
스위치=1
은 찾고자 하는 값이 나온 경우 표시되는 것으로 스위치 값이 1이 되면 실행이 종료됩니다.
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)=이름
으로 작성하시면 셀에 입력하는 입력 프로시저가 되는 것입니다.
좋은 하루 되세요.
-
*2018-04-10 14:23:28
1.
기본적으로 필드에 입력된 값을 그대로 사용하는 경우에는 필드명을 동일하게 작성합니다.
필드에 입력된 값이
수학점수
10
20
40
50
60
...
이라면 조건으로
수학점수
>=40
과 같이 동일한 필드명으로 작성하시면 됩니다.
식을 이용하여 true나 false 값이 나올때 필드명을 원본데이터에 없는 필드명을 써서
가상의 필드를 만들고 이 가상의 필드에서 true 값만 필터해 내는 것입니다.
만약 수량이 평균이상인 값을 구하는데 수량이라는 필드가 있고
수량
=a1>=average($a$1:$a$10)
으로 쓰게 되면 식에서 나온 값이 true 나 false가 되는데
필드명을 수량으로 쓰시면 수량으로 등록된 10,20 30 40 등과 true 와 false 를 비교하게 됩니다.
10=false 는 전혀 같은 값이 될 수 없겠죠.
그러므로 필터를 하지 않게 되는 것입니다.
이런 이유로 가상의 필드를 만들어 그 가상의 필드에서 true 값만 필터하게 되는 것입니다.
이 가상의 필드는 사용자가 직접 만들어 주시면 됩니다.
아래그림과 같이 매출평균 이라던지
매출의평균 등 임의로 작성하셔서 상관 없습니다.
원본 데이터에 있는 필드명(월별, 품명,전월이월,매입수량,매출수량,매출금액,차월이월, 매출이익)만 아니면 됩니다.

2.
FOR EACH~NEXT 문에 필요한 것입니다.
스위치=0
참조행=3
스위치변수를 0, 참조행 변수를 3으로 초기화 하는 부분이구요.
for each aa in range("d4:d7")
에서 각 개체를 aa 에 차례로 저장하면서 셀의 수만큼 반복 실행하게 됩니다.
스위치=1
은 찾고자 하는 값이 나온 경우 표시되는 것으로 스위치 값이 1이 되면 실행이 종료됩니다.
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)=이름
으로 작성하시면 셀에 입력하는 입력 프로시저가 되는 것입니다.
좋은 하루 되세요.