Vba: 값 목록을 분류하는 방법


VBA를 사용하여 Excel에서 값 목록을 정렬하려면 다음 기본 구문을 사용할 수 있습니다.

 SubRankValues ()
    Dim i As Integer

    For i = 2 To 11
    Range(" C " & i) = WorksheetFunction.Rank(Range(" B " & i), Range(" B2:B11 "), 0)
    Next i
End Sub

이 특정 예에서는 B2:B11 셀의 값 순위를 지정하고 C2:C11 셀의 순위를 표시합니다.

마지막 인수 0 은 값의 순위가 오름차순으로 지정되어야 함을 지정합니다(가장 큰 값은 순위 1을 받고, 두 번째로 큰 값은 순위 2를 받는 등).

값을 내림차순으로 정렬하려면 01 로 바꾸면 됩니다.

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: VBA를 사용하여 값을 정렬하는 방법

다음과 같은 농구 선수 목록과 점수가 있다고 가정해 보겠습니다.

포인트 열에 있는 각 값의 순위를 계산한다고 가정해 보겠습니다.

이를 위해 다음 매크로를 생성할 수 있습니다:

 SubRankValues ()
    Dim i As Integer

    For i = 2 To 11
    Range(" C " & i) = WorksheetFunction.Rank(Range(" B " & i), Range(" B2:B11 "), 0)
    Next i
End Sub

이 매크로를 실행하면 다음과 같은 출력이 나타납니다.

포인트 열의 각 값 순위는 C열에 표시됩니다.

예를 들어:

  • 41점을 받은 플레이어 H는 가장 높은 점수 값을 가지므로 1 등급을 받습니다.
  • 40점을 받은 플레이어 C는 두 번째로 높은 점수 값을 가지므로 2 등급을 받습니다.

등등.

포인트 열의 값을 내림차순으로 순위를 매기려면 Rank 메서드의 마지막 인수를 0 에서 1 로 변경할 수 있습니다.

 SubRankValues ()
    Dim i As Integer

    For i = 2 To 11
    Range(" C " & i) = WorksheetFunction.Rank(Range(" B " & i), Range(" B2:B11 "), 1)
    Next i
End Sub

이 매크로를 실행하면 다음과 같은 출력이 나타납니다.

포인트 열의 각 값 순위는 C열에 표시됩니다.

예를 들어:

  • 11점을 받은 플레이어 I은 가장 낮은 점수 값을 가지므로 1 등급을 받습니다.
  • 13점을 받은 플레이어 E는 두 번째로 낮은 점수를 가지므로 2 등급을 받습니다.

등등.

참고 : VBA 순위 방법에 대한 전체 문서는 여기에서 찾을 수 있습니다.

추가 리소스

다음 자습서에서는 VBA에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

VBA: 특정 텍스트가 포함된 셀 수를 계산하는 방법
VBA:범위 내 행 수를 계산하는 방법
VBA: COUNTIF 및 COUNTIFS 함수 작성 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다