Q5. 특정 조건에 맞는 셀의 정보를 얻는 방법?

2743 단어 VBAExcelExcelVBA
예를 들어, 다음과 같은 데이터가 있습니다.
편의상 여기에서는, 어느 직장의 멤버의 나이가 써 있는 정보라고 가정해 둡니다.



여기에서 나이가 30세 이상인 사람이 몇명 있는지 알아보는 매크로를 만들어 보겠습니다.
조사 후 창에서 30세 이상의 사람은 00명입니다. 라는 구체적으로 메시지를 표시하겠습니다.

포인트는 조건 분기입니다. if 문을 사용하여 30 명 이상의 사람들이 있습니다.
어떻게 표현해 나갈까요.
또한, 어떻게 셀의 정보를 참조할지도 하나의 포인트입니다.
이번에는 forEach 문이라는 구문을 사용합니다.

그럼, 매크로 쪽을 봐 갑시다.


Sub Q5_Answer()
    Dim i As Range
    Dim cnt As Integer
    For Each i In Range("C2:C8")
        If i.Value >= 30 Then
            cnt = cnt + 1
        End If
    Next i
    MsgBox "30歳以上の人数は" & cnt & "人です。"

End Sub

3행째에 포인트가 되는 ForEach문이 나오고 있네요.
ForEach 문은 여러 데이터를 처리할 때 유용한 구문입니다.

예를 들어, 이번 예에서 말하면, Range("C2:C8")로 하고 있으므로,
i에는 C2~C8의 Range 정보가 차례로 저장됩니다.

forEach 문 루프 내에서 30 개 이상의 데이터를 검사하는 if 문을 작성하고,
조건에 맞으면 cnt라는 인원수를 계산하는 변수에 값을 더해갑니다.

그리고 마지막 MsgBox라는 함수로 메시지를 표시합니다.

덧붙여서, 매크로를 실행한 결과는 다음과 같은 화면이 됩니다.



제대로, 인원수가 표시되고 있네요.
물론 데이터를 바꾸면 결과도 바뀌므로 시도해보십시오.

이번은 꽤 간단한 매크로이지만, 여러가지 응용이 가능합니다.
예를 들어, 앙케이트에 "예"라고 대답한 사람의 수를 카운트하는 매크로이거나라든지,
술자리 출처를 계산할 때이거나 특정 데이터를 조사한다는 장면은
일상적으로 상당히 있습니다.

그런 경우에 매크로에 떨어뜨릴 수 있으면 꽤 편해질 것입니다.

좋은 웹페이지 즐겨찾기