Excel - Como verificar se e em quantas linhas um determinado valor / string está presente no intervalo

0

Eu tenho uma lista de strings e quero ver se e se sim em quantas linhas cada string é representada no intervalo B. Meus dados são parecidos com isto:

Lista A:

aaa

bbb

ccc

Range B:

1 aaa --- ---

2 bbb ccc bbb

3 aaa --- ---

Meu resultado desejado seria que na lista A para "aaa" ele me diria 2, para "bbb" 1 e para "ccc" 1. Tento fazer isso com a fórmula abaixo, mas isso não acontece parece estar funcionando:

=SUM(IF(COUNTIF(Range B,List A($A1)>0,1,0))
    
por F Bert 15.08.2015 / 16:30

1 resposta

1

Supondo que suas listas de strings estejam em uma célula por linha, você pode usar uma fórmula de matriz.

Digamos que a lista A está em A1:A3 e o intervalo B em B1:B3 . Para contar para cada um na lista A você pode usar -

=COUNT(IF(FIND(A1,$B$1:$B$3)>0,1,0))

Mas esta é uma fórmula de array, então quando você digita você termina pressionando Ctrl + Shft + Entr e você verá chaves de parêntese {} .

SeointervaloBestiveremváriascélulas,bastausaralgocomo-

=COUNTIF($B$6:$D$8,A1)

Podehaveroutramaneiracomfórmulas,masnãoconsigopensarnisso.Vocêpodecriarumacolunaauxiliarparaoquevocêestátentandoencontrarusando

=IF(ISERROR(MATCH($A$1,$B6:$D6)),0,1)

Arrasteparabaixoaslinhase,emseguida,someacoluna.Masissoéummontedecolunasauxiliares,sevocêquisercontarparacadavalor..

SevocêestiverabertoaoVBA,umUDFsemelhanteaissofuncionaria-

Public Function countrow(rng As Range, str As String) As Integer Dim a As Integer a = 0 For Each Row In rng For Each c In Row If InStr(1, str, c) Then a = a + 1 Exit For End If Next Next countrow = a End Function

como -

=countrow(A6:C9,A1)
    
por 16.08.2015 / 12:18