400개 이상의 다양한 항목 목록이 포함된 Excel 목록에서 발생 횟수 계산

400개 이상의 다양한 항목 목록이 포함된 Excel 목록에서 발생 횟수 계산

각 항목의 발생 횟수를 계산하려는 약 5K 줄의 목록이 있습니다.

이 목록에는 약 300~400개의 다양한 항목이 있습니다.

다음과 같은 300개 이상의 고유 수식을 입력하는 대신

=COUNTIF(A1:A5000,"A")
=COUNTIF(A1:A5000,"B")
=COUNTIF(A1:A5000,"C")
=COUNTIF(A1:A5000,"D")
=COUNTIF(A1:A5000,"E")
ETC to 300...

, 일종의 향상된 공식을 사용하여 이 목표를 달성할 수 있는 방법이 있습니까?

아래는 제가 달성하려는 목표를 보여주기 때문에 이전에 게시된 질문에서 빌린 목록 예입니다. 그러나 제 경우에는 A, B, C, D, E뿐만 아니라 300~400개의 다른 항목이 있습니다.

"다음과 같은 항목 목록이 있습니다."

A
B
C
A
A
B
D
E
A

"이제 각 항목의 발생 횟수를 계산하고 싶습니다. 결과는 다음과 같습니다."

A 4
B 2
C 1
D 1
E 1

원래 질문을 게시한 RoflcoptrException에 감사드립니다.

답변1

이를 수행하는 간단한 방법은 값을 텍스트 파일(예: )로 내보내고 동일한 폴더에서 f.txt다음 스크립트를 실행하는 것입니다 ..bat

@echo off
setlocal

rem Accumulate each occurrence in its corresponding array element
for /F %%a in (f.txt) do set /A "[%%a]+=1"

rem Show the result
for /F %%a in ('set [') do echo %%a

샘플 데이터에서 이를 실행하면 다음이 반환됩니다.

여기에 이미지 설명을 입력하세요

답변2

VBA Macro공식보다는 다양한 항목의 발생을 세는 가장 빠른 방법을 제안하고 싶습니다 .

여기에 이미지 설명을 입력하세요

작동 방식:

  • 계산할 고유한 항목 목록을 만들려면 셀의 배열(CSE) 수식을 사용하세요 C68.

    {=IFERROR(INDEX($A$68:$A$78, MATCH(0,COUNTIF($C$67:C67, $A$68:$A$78), 0)),"")}
    
  • 수식 마무리Ctrl+Shift+Enter& 작성하세요.

  • 누르거나Alt+F11또는아르 자형시트 TAB을 클릭하고 누르세요.V코드야.

  • VB 편집기 창에서삽입 명령 클릭모듈.

  • 오피 &이 코드를 확인하세요.

    Public Function CountString(SearchFor As String, InRange As Range) As Long
    
      Dim wbcs As Long, rng As Range, addr As String
       For Each s In Worksheets
    
    addr = InRange.Address
    Set rng = s.Range(addr)
    
    wbcs = wbcs + Application.WorksheetFunction.CountIf(rng, "*" & SearchFor & "*")
     Next s
     CountString = wbcs
    
     End Function
    
  • 통합 문서를 매크로 사용(.xlsm)으로 저장합니다.

  • 셀에 이 수식을 입력하고 D68다음을 작성하세요.

=CountString($C68,A$68:A$78)

  • 여러 열의 발생 횟수를 계산하려면 다음과 같은 수식을 사용할 수 있습니다.

=CountString($C68,A:C)

필요에 따라 수식의 셀 참조를 조정합니다.

관련 정보