Tenho uma lista de cerca de 5 mil linhas nas quais desejo contar as ocorrências de cada item.
Existem cerca de 300 a 400 itens diferentes nesta lista.
Em vez de digitar mais de 300 fórmulas exclusivas parecidas com
=COUNTIF(A1:A5000,"A")
=COUNTIF(A1:A5000,"B")
=COUNTIF(A1:A5000,"C")
=COUNTIF(A1:A5000,"D")
=COUNTIF(A1:A5000,"E")
ETC to 300...
, existe uma maneira de atingir esse objetivo com algum tipo de fórmula aprimorada?
Abaixo está um exemplo de lista que peguei emprestado de uma pergunta postada anteriormente porque demonstra o que estou tentando realizar, no entanto, no meu caso, tenho de 300 a 400 itens diferentes, não apenas A, B, C, D e E:
"Eu tenho uma lista de itens parecidos com isto:"
A
B
C
A
A
B
D
E
A
"Agora quero contar o número de ocorrências de cada item. O resultado deve ficar assim:"
A 4
B 2
C 1
D 1
E 1
Agradecemos a RoflcoptrException por postar a pergunta original.
Responder1
Uma maneira simples de fazer isso é exportar os valores para um arquivo de texto, digamos f.txt
, e executar o seguinte .bat
script na mesma pasta:
@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
Executá-lo em seus dados de amostra retorna:
Responder2
Em vez de uma fórmula, gostaria de sugerir o método mais rápido, para VBA Macro
contar a ocorrência de vários itens.
Como funciona:
Para criar uma lista exclusiva de itens a serem contados, a fórmula de matriz (CSE) na célula
C68
:{=IFERROR(INDEX($A$68:$A$78, MATCH(0,COUNTIF($C$67:C67, $A$68:$A$78), 0)),"")}
Finalize a fórmula comCtrl+Shift+Enter& Preencher.
PressioneAlt+F11ouRclique com o botão direito na planilha TAB e pressioneVvisualizar o código.
Na janela do editor VB deEUinserir comando cliqueModule.
Copa ePaste este código.
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
Salvar pasta de trabalho como macro habilitada (.xlsm).
Insira esta fórmula na célula
D68
e preencha:
=CountString($C68,A$68:A$78)
- Para contar a ocorrência em múltiplas colunas, você pode usar uma fórmula como esta.
=CountString($C68,A:C)
Ajuste as referências de células na fórmula conforme necessário.