VBA COUNT

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Younjung Kim

Last updated on 4월 5, 2023

이 튜토리얼에서는 VBA에서 Excel COUNT 함수를 사용하는 방법을 보여줍니다.

VBA COUNT 함수는 워크시트에서 값이 있는 셀의 수를 계산하는 데 사용됩니다. VBA의 WorksheetFunction 메서드를 사용하여 액세스합니다.

COUNT WorksheetFunction

WorksheetFunction 개체를 사용하여 Excel의 함수 마법사에서 사용할 수 있는 대부분의 Excel 함수를 호출할 수 있습니다. COUNT 함수도 그중 하나입니다.

Sub TestCountFunctino
  Range("D33") = Application.WorksheetFunction.Count(Range("D1:D32"))
End Sub

vba count syntax

COUNT 함수에는 최대 30개의 인수를 사용할 수 있습니다. 각 인수는 셀 범위를 참조해야 합니다.

This example below will count how many cells are populated with values are in cells D1 to D9

Sub TestCount()   
   Range("D10") = Application.WorksheetFunction.Count(Range("D1:D9"))
End Sub

아래 예에서는 G열의 범위와 H열의 범위에 있는 값의 수를 계산합니다. Application 객체는 생략 가능합니다.

Sub TestCountMultiple()
   Range("G8") = WorksheetFunction.Count(Range("G2:G7"), Range("H2:H7"))
End Sub

Count 함수 결과를 변수에 할당하기

수식의 결과를 Excel 셀에 표출하는 대신 코드의 다른 곳에서 사용하고 싶을 수 있습니다. 이 경우 결과를 변수에 할당한 후 코드에서 사용할 수 있습니다.

Sub AssignCount()
   Dim result As Integer
'Assign the variable   
   result = WorksheetFunction.Count(Range("H2:H11"))
'Show the result
   MsgBox "The number of cells populated with values is " & result
End Sub

Range 객체를 사용한 Count 함

Range 객체에 셀 그룹을 할당하고 해당 Range 객체를 WorksheetFunction 객체와 함께 사용할 수 있습니다.

Sub TestCountRange()
   Dim rng As Range
'assign the range of cells
   Set rng = Range("G2:G7")
'use the range in the  formula
   Range("G8") = WorksheetFunction.Count(rng)
'release the range object
  Set rng = Nothing
End Sub

여러 Range 객체를 활용한 Count 함수

여러 Range 객체에 입력된 셀 수를 계산할 수 있습니다.

Sub TestCountMultipleRanges() 
   Dim rngA As Range 
   Dim rngB as Range
'assign the range of cells 
   Set rngA = Range("D2:D10") 
   Set rngB = Range("E2:E10")   
'use the range in the formula 
Range("E11") = WorksheetFunction.Count(rngA, rngB)
 'release the range object
  Set rngA = Nothing 
  Set rngB = Nothing
End Sub

COUNTA 함수 사용하기

Count 함수는 셀에 숫자가 입력된 경우만 계산하며, 셀에 텍스트가 있는 경우 셀을 계산하지 않습니다. 모든 종류의 데이터로 채워진 셀을 카운트하려면 COUNTA 함수를 사용해야 합니다.

Sub TestCountA()
   Range("B8) = Application.WorksheetFunction.CountA(Range("B1:B6")) 
End Sub

아래 예제에서 COUNT 함수는 B 열에 숫자 입력값이 없으므로 0을 반환하고 C 열에는 4를 반환합니다. 그러나 COUNTA 함수는 텍스트가 포함된 셀을 카운트하여 B 열에는 5를 반환하고 C 열에는 여전히 4를 반환합니다.

vba count diff counta

COUNTBLANKS 함수 사용하기

COUNTBLANKS 함수는 셀 범위의 빈 셀, 즉 데이터가 전혀 없는 셀만 카운트합니다.

Sub TestCountBlank()   
   Range("B8) = Application.WorksheetFunction.CountBlanks(Range("B1:B6")) 
End Sub

아래 예제에서 B 열에는 빈 셀이 없는 반면 C 열에는 빈 셀이 하나 있습니다.

vba count diff count blanks

 

COUNTIF 함수 사용하기

아래에서 설명드릴 또 다른 워크시트 함수는 COUNTIF 함수입니다.

Sub TestCountIf()
   Range("H14") = WorksheetFunction.CountIf(Range("H2:H10"), ">0")
   Range("H15") = WorksheetFunction.CountIf(Range("H2:H10"), ">100")
   Range("H16") = WorksheetFunction.CountIf(Range("H2:H10"), ">1000")
   Range("H17") = WorksheetFunction.CountIf(Range("H2:H10"), ">10000")
End Sub

위의 프로시저는 0보다 큰 값, 100보다 큰 값, 1000보다 큰 값, 10000보다 큰 값 등 조건이 일치하는 값이 있는 셀들의 개수를 계산합니다. 수식이 올바르게 작동하려면 조건을 따옴표 안에 넣어야 합니다.

 

WorksheetFunction의 단점

WorksheetFunction을 사용하여 워크시트 범위의 값을 계산하는 경우 수식이 아닌 정적인 값이 반환됩니다. 즉, Excel 시트 내에서 수식에 사용되는 값이 변경되어도 WorksheetFunction이 반환한 값은 변경되지 않습니다.

위의 예에서 TestCount 프로시저는 값이 있는 H 열의 셀을 카운트업했습니다. 수식 막대에서 볼 수 있듯이 이 결과는 수식이 아닌 값입니다.

따라서 Range(H2:H12)에서 값이 변경되는 경우 H14의 결과는 변경되지 않습니다.

WorksheetFunction.Count를 사용하는 대신 VBA를 사용하여 Formula 또는 FormulaR1C1 메서드를 사용하여 셀에 Count 함수를 적용할 수 있습니다.

Formula 메서드 사용하기

Formula 메서드를 사용하면 아래와 같이 셀 범위(예: H2:H12)를 구체적으로 지정할 수 있습니다.

Sub TestCountFormula
  Range("H14").Formula = "=Count(H2:H12)"
End Sub

vba formula test count formula

 

FormulaR1C1 메서드 사용

FromulaR1C1 메서드는 설정된 셀 범위로 제한하지 않는다는 점에서 유용하게 사용할 수 있습니다. 아래 예제는 위와 동일한 답을 제공합니다.

Sub TestCountFormula()
   Range("H14").Formula = "=Count(R[-12]C:R[-2]C)"
End Sub

수식을 더 유연하게 만들려면 코드를 다음과 같이 수정할 수 있습니다:

Sub TestCountFormula() 
   ActiveCell.FormulaR1C1 = "=Count(R[-11]C:R[-1]C)" 
End Sub

그러면 워크시트의 어느 위치에 있든 수식이 바로 위에 있는 11개 셀의 값을 계산하여 ActiveCell에 수식을 입력합니다. COUNT 함수 내부의 범위는 행(R) 및 열(C) 구문을 사용하여 참조해야 합니다.

이 두 가지 방법을 사용하면 VBA를 사용하여 Excel 수식 셀에 입력할 수 있습니다.

이제 H14에 값 대신 수식이 표시됩니다.

vba-free-addin

VBA 코드 예시 추가 기능

본 웹사이트에 있는 모든 코드 예시에 쉽게 접근해보세요.

메뉴로 이동하여 클릭만 하면 코드는 모듈에 바로 입력됩니다. .xlam 추가 기능.

(설치가 필요 없습니다!)

무료 다운로드

VBA 코드 예시로 돌아가기