Como contar o número de valores distintos em um intervalo?

32

Eu tenho uma tabela grande que já está organizada usando filtros, etc. Gostaria de adicionar um resumo abaixo de certas colunas que contêm o número de valores distintos nessa coluna.

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

Eu não posso usar exatamente as respostas para esta pergunta semelhante porque eu Não quero modificar a tabela ou a filtragem. Eu preciso de uma adição na planilha, não uma modificação .

    
por Torben Gundtofte-Bruun 17.09.2010 / 16:13

7 respostas

31
=SUMPRODUCT((A2:A100 <> "")/COUNTIF(A2:A100,A2:A100 & ""))

fará isso sem ter que usar uma fórmula de matriz.

    
por 05.06.2011 / 10:44
7

Eu encontrei uma solução aqui que parece ser uma incrível maneira indireta de resolver isto. Mas ei, funciona ...

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

e, em seguida, pressione Ctrl + Deslocar + Enter . Pressionar apenas Enter dará o resultado errado.

    
por 17.09.2010 / 16:16
1

Encontrou dois recursos para você:

link

e

link

Você deve ser capaz de encontrar uma solução viável a partir daí.

    
por 17.09.2010 / 17:08
1

Este artigo mostra isso 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 isso para 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 usando filtros.

Count the number of unique values by using a filter

You can use the Advanced Filter to extract the unique values from a column of data and paste them to a new location. Then you can use the ROWS function to count the number of items in the new range.

  1. Ensure that the first row in the column has a column header.
  2. On the Data menu, point to Filter, and then click Advanced Filter.
  3. In the Advanced Filter dialog box, click Copy to another location.
  4. If the range that you are counting is not already selected, delete any information in the List range box and then click the column (or select the range) that contains your data.
  5. In the Copy to box, delete any information in the box or click in the box, and then click a blank column where you want to copy the unique values.
  6. Select the Unique records only check box, and click OK.

    The unique values from the selected range are copied to the new column.

  7. In the blank cell below the last cell in the range, enter the ROWS function. Use the range of unique values that you just copied as the argument. For example, if the range of unique values is B1:B45, then enter:
    =ROWS(B1:B45)

    
por 17.09.2010 / 17:10
1

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

Confirme com Ctrl + Shift + Enter

Para cada célula, conta quantas vezes ocorre e soma as inversas de todos esses valores. Suponha que alguma string ou número oculte 5 vezes. Seu inverso é 0,2, que é somado 5 vezes, então 1 é adicionado. No final, dá o número de valores diferentes.

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

    
por 02.05.2013 / 07:42
0

Tente este link. Isso mostra como contar valores exclusivos em uma lista omitindo células em branco.

link

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

Onde "List" é o seu intervalo de células, por exemplo:

Lista = $ A $ 2: $ A $ 12  OU- List = offset ($ A $ 1 , correspondência (rept ("z", 255), $ A: $ A)) -OU- List = offset ($ A $ 1 , match (valor (rept ("9", 255)), $ A: $ A))

    
por 02.07.2013 / 13:56
0

=SUM(IF(FREQUENCY(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))

Certifique-se de pressionar CONTROL + SHIFT + ENTER após colar esta fórmula. Isso é para um intervalo de A2: A100, ajuste o intervalo de acordo.

    
por 04.08.2013 / 01:06