책 내용 질문하기
질문 4가지.
도서
2017 시나공 컴퓨터활용능력 1급 실기(엑셀,액세스 2007사용자용)
페이지
조회수
77
작성일
2018-04-02
작성자
탈퇴*원
첨부파일

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) <<

답변
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)=이름

으로 작성하시면 셀에 입력하는 입력 프로시저가 되는 것입니다.

좋은 하루 되세요.

  • *
    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)=이름

    으로 작성하시면 셀에 입력하는 입력 프로시저가 되는 것입니다.

    좋은 하루 되세요.

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