2010-09-17 14:13:03 +0000 2010-09-17 14:13:03 +0000
32
32
Advertisement

Como contar o número de valores distintos num intervalo?

Advertisement

Tenho uma mesa grande que já está organizada com filtros, etc. Gostaria de acrescentar um resumo por baixo de certas colunas que contêm o número de valores distintos nessa coluna.

Não há função =COUNTDISTINCT(A2:A100) por isso o que posso fazer em vez disso? (Excel 2003)

Não posso usar exactamente respostas a esta pergunta semelhante porque não quero modificar a tabela ou a filtragem. Preciso de uma adição na folha de trabalho, não de uma modificação.

Advertisement
Advertisement

Respostas (7)

32
32
32
2011-06-05 08:44:38 +0000
=SUMPRODUCT((A2:A100 <> "")/COUNTIF(A2:A100,A2:A100 & ""))

fá-lo-á sem ter de utilizar uma fórmula de matriz.

7
7
7
2010-09-17 14:16:02 +0000

Encontrei aqui uma solução que parece ser uma forma incrível de resolver o problema. Mas, ei, funciona…

=SUM(IF(COUNTIF(A2:A100,A2:A100)=0, “”, 1/COUNTIF(A2:A100,A2:A100)))

e depois premir Ctrl+Shift+Enter. Pressionar apenas Enter dará o resultado errado.

1
Advertisement
1
1
2013-05-02 05:42:13 +0000
Advertisement

=SUM(1/COUNTIF(A2:A100;A2:A100))

Confirmar com Ctrl+Shift+Enter

Para cada célula, conta quantas vezes ocorre, e soma os inversos de todos estes valores. Suponha que alguma cadeia ou número ocorra 5 vezes. O seu inverso é 0,2 que é somado 5 vezes, pelo que é adicionado 1. No final, dá o número de valores diferentes.

Nota: não funciona quando ocorrem espaços em branco!

1
1
1
2010-09-17 15:08:28 +0000

Encontrei dois recursos para si: http://www.excelforum.com/excel-worksheet-functions/365877-count-distinct-values.html

e http://www.cpearson.com/excel/Duplicates.aspx

Deverá ser capaz de encontrar uma solução exequível a partir daí.

1
Advertisement
1
1
2010-09-17 15:10:55 +0000
Advertisement

Este artigo ](http://www.officearticles.com/excel/count_unique_values_in_microsoft_excel.htm) mostra isto para valores de texto:

=SUM(IF(FREQUENCY(IF(LEN(C3:C25)>0,MATCH(C3:C25,C3:C25,0),""), IF(LEN(C3:C25)>0,MATCH(C3:C25,C3:C25,0),""))>0,1))

e isto para os valores numéricos:

=SUM(IF(FREQUENCY(C3:C25, C3:C25)>0,1))

Este artigo mostra fórmulas semelhantes, mas também mostra um método que utiliza filtros.

Conta o número de valores únicos usando um filtro & > Pode usar o Filtro Avançado para extrair os valores únicos de uma coluna de dados e colá-los a um novo local. Depois pode usar a função ROWS para contar o número de itens no novo intervalo.

& > 1. Certifique-se de que a primeira linha da coluna tem um cabeçalho de coluna. 2. No menu Data, apontar para Filter, e depois clicar em Advanced Filter. 3. na caixa de diálogo Filtro Avançado, clicar em Copiar para outro local. 4. Se o intervalo que está a contar ainda não estiver seleccionado, apague qualquer informação na caixa Listar intervalo e depois clique na coluna (ou seleccione o intervalo) que contém os seus dados. 5. na caixa Copiar para, apagar qualquer informação na caixa ou clicar na caixa, e depois clicar numa coluna em branco onde deseja copiar os valores únicos. 6. Seleccione a caixa de verificação Apenas registos únicos, e clique em OK.

& > 7. Na célula em branco abaixo da última célula do intervalo, introduza a função ROWS. Use o intervalo de valores únicos que acabou de copiar como argumento. Por exemplo, se o intervalo de valores únicos for B1:B45, então introduza:
=ROWS(B1:B45)

0
0
0
2013-07-02 11:56:27 +0000

Experimente este link. Isto mostra como contar valores únicos numa lista que omite células em branco. http://www.functioninexcel.com/lists-arrays/count-unique-values-in-a-list/

= soma( if( frequência( correspondência( Lista , Lista , 0 ) , correspondência( Lista , Lista , 0 )) > 0 , 1 ))

Onde “Lista” é o seu intervalo de células por exemplo:

Lista = $A$2:$A$12 OR- Lista = offset($A$1,,,match( rept(“z”,255) , $A:$A )) -OR- Lista = offset($A$1,,,match( valor(rept(“9”,255)) , $A:$A ))

0
Advertisement
0
0
2013-08-03 23:06:09 +0000
Advertisement

=SUM(IF(FREQUÊNCIA(IF(SUBTOTAL(3,OFFSET(A2:A100,ROW(A2:A100)-ROW(A2),0,1))),MATCH(“~”&A2:A100,A2:A100&“”,0)),ROW(A2:A100)-ROW(A2)+1),1))

Não se esqueça de carregar em CONTROL+SHIFT+ENTER depois de colar esta fórmula. Isto é para uma gama de A2:A100, ajuste a gama em conformidade.

Advertisement

Questões relacionadas

6
13
9
10
10
Advertisement