Notifications
Clear all

Contar em celula total de valores iguais

4 Posts
3 Usuários
0 Reactions
790 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Colegas,
Parece complicado explicar, mas vamos la.
tenho uma pasta de trabalho com 80 planilhas;

em todas elas uso a celula B7, para lançar conceitos como "A", "C", "D" etc, são seis no total.

o que preciso saber nas 80 planilhas quantas vezes aparece o conceito "A", na celula B7.
fico muito grato se ajudarem
agradeço feliz 2015 - cheio de vitorias.

 
Postado : 30/12/2014 8:58 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

tadeuz, boa tarde!

Montei um exemplo... deve existir meios mais fáceis... mas... no momento pensei só neste.

1º. Crie as suas 80 planilhas
2º. Clique na primeira plan segure o Shift e clique na última plan para selecionar todas de uma vez.
3º. Em uma célula qualquer (ex: Z1 Coloque a fórmula =CONT.SE(B7;"A"), em Z2 coloque =CONT.SE(B7;"C") e Z3 coloque =CONT.SE(B7;"D") e depois oculte a essa coluna.
4º. Na planilha que você for colocar a quantidade dos valores (Ex: A1 Coloque a fórmula =SOMA(Plan1:Plan10!Z1) em B1 Coloque =SOMA(Plan1:Plan10!Z2) e em C1 coloque =SOMA(Plan1:Plan10!Z3).

Veja o exemplo abaixo.

Veja se lhe atende e se entende a minha explicação.

Dê retorno.

Att,

 
Postado : 30/12/2014 11:58 am
(@basole)
Posts: 487
Reputable Member
 

Segue opção com macro: tenho esta rotina q verifica e conta, quantas vezes a string se repete.
Veja se a adaptação atende sua necessidade:

Sub Pesquisa_B7()
  '  a rotina abaixo verifica e conta, quantas vezes a string se repete
Dim n As Long: n = 1
Dim p As String
Dim SerialString As String, i As Long, j As Long, K As Long
Dim arr, r, a, v, aC, x
Dim sht As Worksheet, ws As Worksheet
Dim ThisArray(1 To 10) As String 'Altere o "10" p/ o nº total de plan da sua pasta de trabalho
Application.ScreenUpdating = False
Set ws = ActiveSheet
ws.[b2] = ThisWorkbook.Sheets.Count ' se quiser desconsidere esta linha, nao vai interferir na macro
For Each sht In ActiveWorkbook.Worksheets
    sht.Activate
    p = Range("b7").Value
   ThisArray(n) = p
   n = n + 1
Next sht
ws.Activate
    SerialString = ""
    For Each r In ThisArray
        SerialString = SerialString & " " & r
    Next r
    SerialString = Trim(SerialString)
    arr = Split(SerialString, " ")
    Dim cl As Collection
    Set cl = New Collection
    For Each a In arr
        On Error Resume Next
        cl.Add a, CStr(a)
    Next a
    ws(1).Activate
    ws.Range("c2").Activate ' Altere AQUI a celula que deseja inserir o resultado
    x = 2
    For i = 1 To cl.Count
       v = cl(i)
        With Selection
        aC = .Column
            Cells(x, aC).Value = v
            j = 0
            For Each a In arr
                If a = v Then j = j + 1
            Next a
            Cells(x, aC + 1) = j
        End With
        x = x + 1
    Next i
Application.ScreenUpdating = True
End Sub

* Fiz um exemplo (em anexo) para teste, mas com apenas 10 planilhas (abas);

 
Postado : 30/12/2014 1:00 pm
(@edcronos)
Posts: 1006
Noble Member
 

fiz uma função

Public Function Cont_valor_cell(ByVal rango As String, ByVal Valor) As Long
Dim contagem As Long
contagem = 0
    For Each objws In ThisWorkbook.Worksheets
        If objws.Range(rango).Value2 = Valor Then
            contagem = contagem + 1

        End If
    Next objws
    Cont_valor_cell = contagem
End Function

modo de usar
coloque em um modulo

e na celula onde tem que aparecer a quantidade de celulas que tem o valor coloque

=Cont_valor_cell("B7";"A")

ela vai contar em quantas abas tem o valor A na celula "B7"

=Cont_valor_cell("B7";B7)-1

vai contar quantas abas mais tem o valor igual a celula "B7"
o -1 é para excluir do total a aba atual

 
Postado : 30/12/2014 1:34 pm