Excel: conta o número de linhas únicas / distintas no intervalo com condição

2

Eu tenho uma planilha do excel com:

  • na Coluna A: números da semana
  • no Col B: datas (entradas do quadro de horários)

Eu preciso saber o número de dias trabalhados por semana. Por isso, preciso do número de entradas de data exclusivas por número de semana.

Eu encontrei fórmulas (tanto array como non-array) que lidam com isso para um intervalo fixo, mas eu quero ter os resultados em outra coluna (por número de semana).

O resultado do conjunto de dados de exemplo abaixo seria (o cólon é apenas para clareza):

14: 2 
15: 3 
17: 6 
20: 2 
21: 3 

Se estes são os dados de origem:

14: 4/04/2012
14: 4/04/2012
15: 10/04/2012
15: 10/04/2012
15: 11/04/2012
17: 26/04/2012
17: 26/04/2012
17: 26/04/2012
17: 26/04/2012
17: 27/04/2012
17: 27/04/2012
20: 14/05/2012
20: 14/05/2012
21: 23/05/2012
21: 23/05/2012
21: 25/05/2012
    
por Bertvan 29.09.2012 / 00:16

3 respostas

3

para contar o número de entradas, use =countif(A:B,D1) supondo que seu número de semana esteja na célula D1 e sua lista de entradas esteja nas colunas A e B.

Outra opção é criar uma tabela dinâmica, com os números da semana como rótulos de linha e a contagem de entradas como dados. Isso dará um bom resumo que pode ser atualizado rapidamente.

    
por 29.09.2012 / 00:56
1

É possível fazer inteiramente com fórmulas. Ele precisa de um pouco de endereçamento indireto e de um (mas, para maior clareza, farei isso) duas colunas de trabalho separadas ao longo dos dados originais e três colunas extras na tabela de resultados:

Assumirei que os dados reais começam na linha 3 para permitir alguns cabeçalhos. Usarei ; para separação de argumentos, o que não é padrão para a localidade dos EUA. Eu não assumirei que as datas estão classificadas . Com essa suposição, a solução seria mais simples.

  1. Célula H2 (Quantas linhas na entrada): =COUNT(A3:A1048576)
  2. Célula C3 (intervalo de pesquisa dinâmico): nada
  3. Células C4: C1000: =ADDRESS(ROW(A$3);COLUMN(A$3)) & ":" & ADDRESS(ROW(A3);COLUMN(A3))
  4. Célula D3 (é única): TRUE
  5. Célula D4: D1000: =COUNTIF(INDIRECT(C4);A4)=0
  6. Célula E3 (número de entrada única): 1
  7. Célula E4: E1000: =IF(D4;E3+1;E3)
  8. Célula I2 (quantos únicos encontrados): =OFFSET(E3;H2-1;0)
  9. Cell J2 (intervalo de dias da semana): =ADDRESS(ROW(A3);COLUMN(A3);4) & ":" & ADDRESS(ROW(A3)-1+$H$2;COLUMN(A3);4)
  10. Célula K2 (Nr do intervalo de dia da semana exclusivo): =ADDRESS(ROW(E3);COLUMN(E3);4) & ":" & ADDRESS(ROW(E3)-1+$H$2;COLUMN(E3);4)
  11. Célula H5 (contador): 1
  12. Célula H6: H100 =H5+1
  13. Célula I5: I100 (posição): =MATCH(H5;INDIRECT($K$2);0)
  14. Célula J5: J100 (dia da semana): =OFFSET($A$3;I5-1;0)
  15. Célula K5: K100 (Contagem): =COUNTIF(INDIRECT($J$2);J5)

O resultado final está no intervalo K5: K100.

Por favor, note que embora eu trabalhe com fórmulas indiretas, a solução funcionará se você inserir uma coluna em qualquer lugar, ou excluir a coluna F: F de G: G. Você também pode mover células, desde que mantenha as colunas com os dados juntos.

É importante manter tudo em uma planilha. Se você insistir em mover a tabela H4: K100 para outra planilha, modifique os endereços nas células J2 e K2 para incluir o nome da planilha.

    
por 29.09.2012 / 10:40
0

Uma Tabela Dinâmica pode ser mais fácil

    
por 30.09.2012 / 01:24